... 但最近突然發現瀏覽器的記憶體會不斷的升高,請問有甚麼好方法可以利用javascript 釋放記憶體的嗎? 使用chrome 工具測試發現如圖的object 會越來越大. ... <看更多>
java能使用free來釋放記憶體 在 Android ram 神秘消失探討(第4頁) - Mobile01 的推薦與評價
光看free memory你會嚇到,系統300GB的memory被吃到只剩下50GB左右(這是台server) ... 在電腦科學中,內部記憶體泄漏指由於疏忽或錯誤造成程式未能釋放已經不再使用的 ... ... <看更多>
java能使用free來釋放記憶體 在 Re: [討論] c++真的很難嗎? - 看板Soft_Job - 批踢踢實業坊 的推薦與評價
※ 引述《joeywayi (拉拉拉吃屎啦)》之銘言:
: 如題
: 想請問各位攻城濕
: 因為我自己是學習c++入門的
: 覺得比起java友善很多
: 常常聽到說c++很難
: 這個是真的嗎?
C跟C++是完全不同的語言(無誤
C++是個很大很大的坑(相比JAVA/.NET)
C的聖經 The C Programming Language 很薄一本
看完也懂了八九成,寫純C你不用看太多書
C++公認的聖經 C++ Primer 厚厚一本
看完之後你更不懂了,寫C++書看不完
C跟C++最簡單的差異包含
1.記憶體管理
//這是C的寫法
int *ptr = malloc(sizeof(int)); //配置記憶體
free(ptr);//釋放記憶體
//這是C++的寫法
int *ptr = new int(100);//配置記憶體
delete a;//釋放記憶體
而C++的new 跟delete又會影響 建構式(constructor)跟解構式(destructor)的呼叫
在C/C++中記憶體管理,是很重要的事情,沒弄好就會造成記憶體被佔用
2. 物件導向(Object-oriented)
把所有方法、函式都模組化,並且有封裝、繼承、多型、抽象的概念(詳細自己研讀)
而舉例來說goto 是C中一個很強大的功能,
但到了C++反而建議不要用,因為會危害程式的可閱讀性
而你要在C中寫出類似OO的語法當然也是可以,但就很像閉門造車,自找麻煩
3. 樣板(Template)
C++之所以強大的原因之一,自己研究
然後C/C++ 跟JAVA/.NET 相比
1. 記憶體管理
JAVA/.NET 少了delete 跟free這些要自己手動釋放記憶體的傢伙
取而代之的是Garbage Collection(俗稱GC),
讓底層自動幫你管理哪些資源不再被利用需要釋放
因為是系統底層管理的,所以你也不能知道到底釋放了沒
你頂多使用GC.Collect() //.net 去通知系統該釋放了,但系統到底釋放了沒 天知道
2. 泛型(template)
你沒看錯,跟C++的樣版名稱一樣,但偏偏兩者不完全相同
MSDN中簡單說明了這兩者不是一樣的東西,C#中的是閹割版(應該可以這樣說)
https://msdn.microsoft.com/zh-tw/library/c6cyy67b.aspx
3. 指標(pointer, ptr)
C就俱備的強大利器,把記憶體的利用又細分成實體跟門牌號碼(指標)的概念
先學JAVA/.Net的在回去看C/C++ 常常會看不懂 ptr到底在幹嘛
因為JAVA/.Net 已經簡化了ptr,在裡面可能會看到的指標大概就只剩this(物件本體)
以上是小弟工作寫了半年C++簡單的介紹.Net 跟C++的差異
如果是學習導向的,C++跟.Net都學不會吃虧
如果是工作導向的,就看你要走哪個領域
e.g 走前端html/javascript的話,你就不需要學C/C++了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.59.148
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1461257524.A.154.html
... <看更多>