解決jacob呼叫word處理doc檔案的記憶體溢位問題
背景:
有個專案在系統後臺用Jacob呼叫Word程序的API做doc檔案處理。在進行壓力測試的時候,發現執行一段時間後,記憶體佔用奇高,大約7.4G。由於JVM佔用記憶體限制為2G,因此懷疑多出來的記憶體應當是Jacob洩露的。
在網路上搜索解決辦法,都是要這樣呼叫
ComThread.InitSTA();
// do something
ComThread.Release();
但是在專案中,使用了執行緒池進行DOC檔案處理,也就是同一時間,會有多個WORD程序在跑,使用ComThread.InitSTA();之後,Jacob僅允許執行緒池裡面的一個執行緒執行,其他執行緒都被鎖住。
最後修改成ComThread.InitMTA(true);來初始化,經過24小時壓力測試,可以同時有多個WORD程序執行,另外也解決了Jacob記憶體溢位問題。
相關推薦
解決jacob呼叫word處理doc檔案的記憶體溢位問題
背景: 有個專案在系統後臺用Jacob呼叫Word程序的API做doc檔案處理。在進行壓力測試的時候,發現執行一段時間後,記憶體佔用奇高,大約7.4G。由於JVM佔用記憶體限制為2G,因此懷疑多出來的記憶體應當是Jacob洩露的。 在網路上搜索解決辦法,都是要這樣呼叫
解決使用poi處理execl表格記憶體溢位問題
在平常的開發中會用到處理表格檔案的功能,poi就是一個非常優秀的處理表格的java框架,但是當表格檔案的資料量過大處理過程就會出現堆記憶體溢位的異常,讓人痛苦了兩天,最後在谷歌的幫助下找了一個解決方法,現在把這個方法分享出來希望可以幫助到大家!! import org.apache.poi.h
C#呼叫批處理(bat)檔案,並獲取執行批處理(bat)檔案後返回值
/// /// 執行BAT檔案 /// /// csv檔案引數 /// bat檔案執行返回值 static string execBAT(string fileName) { ProcessStartInfo pro = new System.Diagnostics.ProcessStartInf
HttpURLConnection上傳大檔案記憶體溢位的原因及解決辦法
原因: 由於HttpURLConnection預設是有快取機制的,在對檔案操作時,會將讀取的資料寫入到快取區中,並不是直接寫入到伺服器上,只有當流被關閉時,才將資料提交到伺服器上。當快取區的資料大於虛擬機器給點的記憶體時,就導致記憶體溢位。 HttpURLConnectio
解決vbe6ext.olb不能被載入 記憶體溢位 問題
開啟登錄檔:HKEY_CLASSES_ROOT\TypeLib{0002E157-0000-0000-C000-000000000046}\5.3\0\win32, 我右側資料顯示載入路徑是“C:
解決vbe6ext.olb不能被載入 記憶體溢位 問題 解決vbe6ext.olb不能被載入 記憶體溢位 問題
剛安裝完office2010,但是Excel中的Visual Basic卻不能用。 參考了網上的說法。說在C:\Program Files\Common Files\microsoft shared\VBA 在這是有兩個資料夾,分
淺談Android多圖(包括大圖)上傳時的記憶體處理,防止記憶體溢位。
Android多圖上傳時,為了防止記憶體溢位,基本只要做好兩點就好了,一是及時釋放已經上傳完的圖片,以及在對圖片處理時,必須是一張一張來,因為對圖片的處理過程是最容易OOM的。 下面有簡單的程式碼說明下, 1、首先,圖片的model, ImageBean model中
Android Bitmap圖片處理,防止記憶體溢位
在android 中載入一張圖片,如果圖片過大就有可能會出現記憶體溢位,特別是在載入資料過多的時候,像ListView 和GridView等重複列表中,因此在處理Android圖片防止記憶體溢位就顯得特別的重要,也是很多面試中經常問到的問題,面試官通常都會讓你談
java+jacob實現word轉pdf(通過呼叫模板檔案)
package com.repair.util.pub; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream
檔案記憶體對映mmap解決大檔案快速讀寫問題和程序間共享記憶體
mmap函式主要用途有三個: 1、將一個普通檔案對映到記憶體中,通常在需要對檔案進行頻繁讀寫時使用,這樣用記憶體讀寫取代I/O讀寫,以獲得較高的效能; 2、將特殊檔案進行匿名記憶體對映,可以為關聯程序提供共享記憶體空間; 3、為無關聯的程序提供共享記憶體空間,一般也是將一個普通檔案對映到
解決Android呼叫系統相機連續拍照出現的記憶體溢位問題
記憶體溢位相信做過程式設計的人都知道一二,這裡說Android 記憶體溢位的問題:、問題描述:Android下的相機在獨自使用時,拍照沒有問題,通過我們的程式碼呼叫時,也正常,但是更換了不同廠商的平板,ROM由Android4.0變成了Android4.1後,拍照出現了Out
poi0020,大檔案讀取,有效解決記憶體溢位。
解決思路,一次載入少量檔案進記憶體,處理完成後,再載入下一批,不斷迴圈。難點:傳統的使用者模式讀取方式沒法完成,使用者模式是一次性將檔案內容全部載入到記憶體中;所以需要引入另外一種事件模式,事件模式是一次讀取一條進入檔案。 程式碼實現: 1、建立maven工程,匯入專
java 記憶體對映處理大檔案
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWrit
VBA/VBScript提取Word(*.doc)檔案中包含的圖片(照片)
要處理的人事簡歷表是典型的Word文件,其中一人一份doc,裡面包含有個人的照片,如果要把裡面的照片複製出來就比較麻煩了,一般手動的做法是選擇檔案另存為,儲存型別選擇“網頁(*.htm; *.html)”,這樣就會另存為網頁形式,同時會有個以檔名開頭,以.files結尾的資料夾,點選進去就可以看到Word
hive處理小檔案(進行map、reduce、壓縮、歸檔優化解決)
背景 Hive query將運算好的資料寫回hdfs(比如insert into語句),有時候會產生大量的小檔案,如果不採用CombineHiveInputFormat就對這些小檔案進行操作的話會產生大量的map task,耗費大量叢集資源,而且小檔案過多會對namenode造成很
應用jacob元件造成的記憶體溢位解決方案(java.lang.OutOfMemoryError: Java heap space)
轉自(http://www.myexception.cn/ruby-rails/903889.html) 使用jacob元件造成的記憶體溢位解決方案(java.lang.OutOfMemoryError: Java heap space) 都說記憶體洩漏是C++的通病,記
jacob簡單呼叫word,execl(二)
1,jacob呼叫word public static void main(String [] args){ String paths = new String("e:\\xjy\\jcob-test\\temp\\"); String savePaths = new
java 讀 大檔案excel 記憶體溢位 解決
Office軟體一直是一個誨譽參半的軟體,廣大普通計算機使用者用Office來滿足日常辦公需求,於是就產生了很多生產資料和文件,需要和企業單位的專用辦公系統對接,而Office的解析工作一直是程式設計師非常頭痛的問題,經常招致程式設計師的謾罵,也被譽為是微軟最爛
android檔案快取及SD卡建立資料夾失敗解決和bitmap記憶體溢位解決
1.相關程式碼: 新增許可權: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:na
vc把文字內容存成word檔案和把doc檔案儲存為txt格式
1.vc把文字內容存成word檔案 #include <ole2.h>#include <stdio.h> void ErrHandler(HRESULT hr, EXCEPINFO excep){ if(hr==DISP_E_EXCEPTION