[問題] C#調用vc++打包的dll,記憶體會一直上升
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
vs2017
我在vc++寫好的opencv
在vc++執行幾萬次 記憶體都不會增加
封裝成dll檔給c#使用
每執行一次不會有變化,
但連續執行(至少十幾次後)
會看到約0.1M的增加
執行20000次後 記憶體從30M變成80M
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
我有使用new char[]的都有delete
在c#跟c++數字交換是用struct
都是由c#這邊生成struct
在丟給vc++去讀取或寫入數據
字串交換都是c#宣告string 在丟給vc++
Vc++有new char[]
也會事後在vc++ delete
日前我找不到什麼原因記憶體會不斷上升
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.106.27 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1610087666.A.FC9.html
→
01/08 15:39,
4年前
, 1F
01/08 15:39, 1F
→
01/08 15:39,
4年前
, 2F
01/08 15:39, 2F
是delete[]沒錯
是delete[]沒錯
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 16:22:31
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 16:22:31
推
01/08 16:49,
4年前
, 3F
01/08 16:49, 3F
推
01/08 16:49,
4年前
, 4F
01/08 16:49, 4F
在c#是寫成ref string temp
C++則是 char* &temp
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 17:18:01
→
01/08 17:44,
4年前
, 5F
01/08 17:44, 5F
有
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 18:12:36
→
01/08 19:05,
4年前
, 6F
01/08 19:05, 6F
→
01/08 19:05,
4年前
, 7F
01/08 19:05, 7F
→
01/08 19:05,
4年前
, 8F
01/08 19:05, 8F
請問一下
都沒錯誤的狀況下
不管執行多少遍 記憶體都不會一直增加 是嗎?
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 19:13:48
推
01/08 19:25,
4年前
, 9F
01/08 19:25, 9F
推
01/08 19:25,
4年前
, 10F
01/08 19:25, 10F
推
01/08 19:34,
4年前
, 11F
01/08 19:34, 11F
→
01/08 19:35,
4年前
, 12F
01/08 19:35, 12F
→
01/08 19:35,
4年前
, 13F
01/08 19:35, 13F
我目前的確是
由dll創建的
也做一個函數由c#呼叫去delete
C#要輸入值
就用marshal.AllocHGlobal
dll用完後
marshal.FreeHGlobal去刪除
※ 編輯: su27 (220.136.106.27 臺灣), 01/08/2021 19:53:56
→
01/08 23:47,
4年前
, 14F
01/08 23:47, 14F
→
01/08 23:48,
4年前
, 15F
01/08 23:48, 15F
→
01/09 00:01,
4年前
, 16F
01/09 00:01, 16F
→
01/09 00:03,
4年前
, 17F
01/09 00:03, 17F
→
01/09 00:03,
4年前
, 18F
01/09 00:03, 18F
我本來是執行一大堆程式(使用很多dll的函數)
把他拆成
把他拆成
1.只載入圖片20000次 內存是28M 看起來沒問題
2.將圖片轉成灰度圖。 20000次後 變成51M
這函數沒任何數字及字串 輸入輸出
程式碼挺大的 現在也不曉得到底哪裡有問題
就如我說的 執行兩三次內存是相同的 沒任何變化
我估計我得在C#寫個小程式 才能知道哪裡出問題
謝謝
※ 編輯: su27 (220.136.106.27 臺灣), 01/09/2021 03:16:55
→
01/09 03:19,
4年前
, 19F
01/09 03:19, 19F
→
01/09 03:19,
4年前
, 20F
01/09 03:19, 20F
→
01/09 03:20,
4年前
, 21F
01/09 03:20, 21F
→
01/10 00:12,
4年前
, 22F
01/10 00:12, 22F
Struct算嗎
我的數據交換是用struct
※ 編輯: su27 (42.74.224.220 臺灣), 01/10/2021 16:21:06
→
01/10 21:06,
4年前
, 23F
01/10 21:06, 23F
→
01/10 21:08,
4年前
, 24F
01/10 21:08, 24F
→
01/10 21:09,
4年前
, 25F
01/10 21:09, 25F
→
01/10 21:12,
4年前
, 26F
01/10 21:12, 26F
→
01/10 21:13,
4年前
, 27F
01/10 21:13, 27F
→
01/11 09:11,
4年前
, 28F
01/11 09:11, 28F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章