通過介面獲取大量資料,記憶體溢位的問題
今天一個網友問了我一個問題:
需要給這個介面中寫義工xml串(4w條),人家介面返回0或者1問題是:5千條正常傳送,1w條就報記憶體溢位 . 報java.lang.OutOfMemoryError: Java heap space 錯誤.
建議解決方法:
1.設OutOfMemory的異常斷點,看出錯時jvm裡的堆疊情況.
2.增大記憶體.(可是他說記憶體是2G的,伺服器記憶體8G,依舊報錯)
3.分頁給資料.(可是他說不行,必須一次性給1W條以上的資料)
真心的建議還是從優化程式的設計入手.解決根本問題.最終他還是採納了我的建議.
可能性:
a.有和全域性的List在整個抽取中不被釋放;
b.日誌檔案不是批次寫入,而時所有都結束後一次寫入,無論總檔案有多大.
問題就好比我們一頓飯多次點沒有關係,天天這麼吃就會張胖一樣.
所以程式中特別是全域性或是static的東西要很是留意.
相關推薦
通過介面獲取大量資料,記憶體溢位的問題
今天一個網友問了我一個問題: 需要給這個介面中寫義工xml串(4w條),人家介面返回0或者1 問題是:5千條正常傳送,1w條就報記憶體溢位 . 報java.lang.OutOfMemoryError: Java heap space 錯誤. 建議解決方法: 1.設Out
Mysql遍歷大表(Mysql大量資料讀取記憶體溢位的解決方法)
mysql jdbc預設把select的所有結果全部取回,放到記憶體中,如果是要遍歷很大的表,則可能把記憶體撐爆。 一種辦法是:用limit,offset,但這樣你會發現取資料的越來越慢,原因是設定了offset,mysql需要將讀取位置移動到offset的位置,隨著offset增大,取資料也越來越慢
通過JS獲取前臺資料,並向後臺一般處理程式傳遞
function AddTeachCourse() { //取得教師ID var strTeacherID = $("#hidFieldSaveTeacherID").val(); //alert("教師ID="+txtTeacherID); //取得課程ID var s
Java資料介面編寫簡單例子,Java Json解析,服務端介面輸出Json資料,客戶端通過HTTP獲取介面Json資料
實現效果 實現原因 目前主流的CS結構,資料都是通過RESTful風格介面形式呈現,不管是桌面級應用程式還是手機端,介面是我們獲取資料的大多數選擇,主流資料介面呈現形式主要是Json和Xml,後者目前基本漸行漸遠。Json的輕量級和可讀型成為了大多數公司及個人
react 模擬從後臺獲取選單資料,點選頂部選單切換介面的筆記
本文是基於Ant design Pro 2.0做的筆記,官方提供的demo(官方demo下載地址),路由是程式配置的,不能滿足專案需求,所以在研究過程中,把所遇到的問題,做一個筆記,最終效果圖如下: 一:需求描述 1 從介面獲取選單,替換預設demo的選單。 &n
用Python獲取股價資料,通過Matplotlib視覺化
股價資料是典型的一種時間序列資料,而Python非常擅長獲取處理時間序列資料。特別是,Python庫的pandas原本就是為了處理金融資料而開發的,為時間序列資料的分析準備了許多強大的功能。 這次做的東西非常簡單,就是下面的2點。 1. 從Yahoo! Finan
解決ABAP獲取大量資料而被佔用過多記憶體等問題
1.最主要的是儘量減少I/O操作,然後是記憶體佔用,在再就是CPU的負載。類似對硬碟的讀寫的I/O操作是最耗費時間的。 如果對記憶體的操作不加以控制,可能有些時候不得不對硬碟的交換空間操作,這樣就增加了對磁碟的I/O讀寫操作。 CPU的負載可以通過優化程式來改善,在程式中儘量使用諸如SUM(SQL語
jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位(轉)
來自網路,我在做生成excel的時候也遇到這個吐血問題。 jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位 處理: 出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指標指向資料庫的資料,本身是不儲
JVM學習--各資料區記憶體溢位異常測試
JVM學習–總索引 文章目錄 JVM學習--各資料區記憶體溢位異常測試 基本引數介紹 堆記憶體異常測試 OutOfMemoryError 棧記憶體異常 StackOverflowError 棧記憶體異常測試 OutOfMe
【Microsoft】VBE6EXT.OLB不能被載入,打不開巨集編輯,記憶體溢位
十有八九十,是同時安裝了office和WPS,而WPS把OFFICE的登錄檔目錄佔用了,嘗試手動修改看看。 解決方法: win+r調出執行的視窗 輸入regedit確定 開啟登錄檔編輯器 找到這個路徑:HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C
MyBatis查詢介面返回大量資料導致OOM
MyBatis查詢介面返回大量資料導致OOM 異常描述 介面除錯過程中發現程式執行中斷,DEBUG跟蹤到Mapper中的查詢介面報錯,沒有接收到返回值且丟擲 out of memory 異常 異常定位 逐步DEBUG,對比傳入底層的引數及
Java基於httpclient獲取網頁資料,實現簡單網路爬蟲
1、pom檔案引入httpclient依賴 <dependency> <groupId>org.apache.httpcompon
js獲取easyui資料,根據厚度,寬度,材質一致合併,長度相加顯示
<a href="javascript:printBill()" class="bt" style="margin-left:5px;text-decoration:none;color:#ffffff;float: right;
呼叫介面獲取token時,返回值為{"desc":"CurTime is illegal","code":414}
原因:伺服器時間跟網路時間不同步!!! 即時通訊,第三方為網易雲介面:https://api.netease.im/nimserver/uer/create.action 呼叫介面獲取token時,返回值為{"desc":"CurTime is illegal",
pulltorefreash獲取網路資料,資料庫,判斷網路,快取並展示
pulltorefreashlistview依賴 compile 'com.github.userswlwork:pull-to-refresh:1.0.0' main xml <com.handmark.pulltorefresh.library.PullToRefr
使用JDBC獲取資料庫資料,並生成json格式檔案(省市區三級聯動)
前言: 轉眼已經2018年了, 17年有點忙,出差將近三個月,部落格也停更了好久。 一直都是不停的修復bug,和做一些業務需要的提示和互動。主要是因為和硬體有關係所以比較麻煩,開發週期也很長,而且還不穩定,硬體先行,然後在是除錯,互動。不過也有好處,學到的東西自然不是簡簡單單的 程式碼了。
前端動態載入(ajax介面連線後臺資料,將後臺資料返回到前端頁面)。
’ text +=’ ‘+result[0].projectCategory+’’ text +=’ ‘+result[0].projectCategory+’’ text +=’ ‘+result[0].projectCategory+’ ’ text +=’ ‘+result[0].project
java程式碼獲取jenkins資料,構建歷史等資訊
本篇文章主要介紹如何獲取jenkins構建歷史資料等資訊,不包含java構建等操作。 1.jenkins所需jar,後續如有缺少可百度自行補齊。 <!--jenkins所需jar包開始--> <!-- https://mvnreposit
bootstrap table通過ajax獲取後臺資料展示在table
1. 背景 bootstrap table 預設向後臺傳送語法的dataType為 json,但是為了解決跨域問題我們需要將dataType改為jsonp,這時就需要修改bootstrap table獲取後臺資料的方式,採用$('#table').bootstrap
Zookeeper命令列操作 常用命令 客戶端連線 檢視znode路徑 建立節點 獲取znode資料,檢視節點內容,設定
8.1.常用命令 啟動ZK服務bin/zkServer.sh start 檢視ZK服務狀態bin/zkServer.sh status 停止ZK服務bin/zkServer.sh stop 重啟ZK服務bin/zkServer.sh restart 連線伺服器