恕小弟不懂X264, 不過GC都係其中一個解決辦法,當然有效能差啦
l0001 發表於 2015-6-13 00:56


關甚麼H264事,我舉的例子適用於所有程式運算。

TOP

  換曬的hardware一定平過請人優化個program ..
你叫HSBC換曬電腦成本貴定請人改良PROGRAM便宜
  
   
我心諗...你自己研究緊點樣manage 好個 memory 個陣...人地打回重做用埋framework寫完個system仲launch 埋啦

  不過運行一舊屎,然後一個問題一年解決唔到,我用1分鐘就解決好了。

  
其實香港IT最失敗既地方係的人自視過高...以為自己識既野最有用..唔接受技術會有淘汰的一天..真悲哀

  其實香港IT最失敗既地方係的人自視過高...以為自己識既野最有用..唔接受技術會有不如人的一天..真悲哀

TOP

本帖最後由 7h1r733n 於 2015-6-13 09:40 編輯
時代係進步,不過CPU原理就無改進,幾十年想像電影化的人工智能,智慧化,思想化,生物學習化,全部都實 ...
evec 發表於 2015-6-13 08:36


我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都唔會比我做到呢D野... 所以.. 只能求個tools/language自己做好"優化"...

另外有Ching話Out Of Memory問題....我唔識Java啦, 但是咪Gaberage Collect冇做好? 如果有做好應該唔會咁(否則Java就epic fail啦, 仲可以用到今日?), 我自己寫Game每完一個Scene都要Unload所有Assets再force GC.Collect.. 放返d memory出黎.. 呢d係常識吧? 如果冇做.. 咁呢個係屬於"廢人寫廢Code"問題....

TOP

你叫HSBC換曬電腦成本貴定請人改良PROGRAM便宜
  
   
   不過運行一舊屎,然後一個問題一年解決唔 ...
evec 發表於 2015-6-13 08:45


由得佢啦,佢以為得佢先寫high level language。


我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都 ...
7h1r733n 發表於 2015-6-13 09:27


得幾歲大嘅Go夠新啦,佢做到data type同struct declaration改良咗,memory唔洗自己free,但個pointer一樣留返起度。加上Go個GC其實仍然令班開發組煞費心思。

TOP

我咁講啦... 而家好多野運作都係靠pointer.. 呢樣我明.. 但好多時一d所謂High Level language/tools佢都唔會比我做到呢D野... 所以.. 只能求個tools/language自己做好"優化"...

另外有Ching話Out Of Memory問題....我唔識Java啦, 但是咪Gaberage Collect冇做好? 如果有做好應該唔會咁(否則Java就epic fail啦, 仲可以用到今日?), 我自己寫Game每完一個Scene都要Unload所有Assets再force GC.Collect.. 放返d memory出黎.. 呢d係常識吧? 如果冇做.. 咁呢個係屬於"廢人寫廢Code"問題....


你是用 unity 吧 ?
在 java 都有類似的 function. 呢種做法叫 collect garbage explicitly.
(.net 應該都類似)
識得寫 java o既從來都吾會 explicitly 咁 collect garbage (System.gc()),
OutOfMemory 通常都係 program 本身有 memory leak 或者落錯 jvm heap options 多.
你講得岩, java 吾係流o既, java 個 garbage collector 都真係 work o既, even 完全吾 call System.gc() 甚至 disable explicit GC, 一個寫得好無 memory leak o既 java program 係可以行一年以上吾 restart 又無 call System.gc() 都吾會有 OutOfMemory error.

TOP

本帖最後由 dragonken 於 2015-6-15 22:54 編輯

我成條 thread 睇哂, 我講我所想的.
1. 用 java 發現有 GC 問題就加 hardware 去解決問題故然係反智, 但連 java 咁易學易用, 連這些 memory related 的問題都根治不了, 我敢講你轉用 C++ 寫都一定係死硬.
2. 正確面對 GC / OutOfMemory 問題應該係用 tools profile 個 application 搵出問題所在, gc tuning 由 jdk6 開始難度已經大減.
3. Java o既 OutOfMemoryError 多是 program 本身 memory leak, 跟 jvm / garbage collector 無關.
4. GC 帶來的問題主要是其 Non-deterministic 的特質, 跟 c++ manual memory management 比較起來的確是差一點.
5. 如果一個叻o既 C++ programmer 同一個叻o既 java programmer 一齊開始分別以 c++ 同 java 開發同一個 application, 用 C++ 寫的完勝吧. 至少我也是這樣認為. 問題是你可以請到幾多個叻o既 C++ programmer ? 醒o既 java programmer 一街都係.

TOP

呢類思維只局限於做開web project嘅人。time critical嘅application無幾多唔洗由developer去manage返system resource。


點先至算係 time critical ? Non-web 就等如 time critical ?

TOP

你是用 unity 吧 ?
在 java 都有類似的 function. 呢種做法叫 collect garbage explicitly.
(.net 應該 ...
dragonken 發表於 2015-6-15 19:48


我是用Unity啊.. Java有睇過但冇深究...
Unity唔可以好似你咁講.. 唔做garbage  collect特別係scene多.. 或者一個game入面有d mini game轉來轉去.. 例如入game出返lobby如果唔做gc就好易拖死部電話... 特別係Android...

通常我地做法都係落o系SenceManager果度..    個Scene完就會自動call Resources.UnloadUnusedAssets()  同GC.Collect去放memory..

TOP

我是用Unity啊.. Java有睇過但冇深究...
Unity唔可以好似你咁講.. 唔做garbage  collect特別係scene多..  ...
7h1r733n 發表於 2015-6-16 02:29


那你搞清楚所謂 "拖死部電話" 是 OutOfMemory 還是只是它只在做 full GC 拖慢部電話吧, 係 android 部手機一段時間內沒有回應便會 prompt 你 close / wait, 跟 OutOfMemoryError 即彈 app 不同啊.
無論是 Java / .net / Android Dalvik, 到最後關頭都一定會行一個 stop-the-world full GC, 即係停哂這個 app 的所有 processes 然後做 Full GC, 如果 reclaim 哂所有 garbage 都無空間 allocate new objects 先會 OutOfMemory

前文你所講 OutOfMemory 原因是沒有做好 GC.collect, 又說這是 "常識" 及沒有做的就屬於 "廢人寫廢Code", 這說法我應為很有偏差. 如果你吾認識 java 或吾熟識 jvm garbage collector 就最好不要亂說.
就算是 Unity, 我認為就算你沒有 call GC.Collect, Android Dalvik 也會於爆 Ram 時做一次 full gc,
call GC.Collect 只係因為吾想係吾適當o既時候突然爆個 full GC, 跟 OutOfMemory 無關.

留意我沒有認為你於轉 scene 時 call GC 係錯, 只係想你搞清楚咩情況下會出現 OutOfMemory.

TOP

那你搞清楚所謂 "拖死部電話" 是 OutOfMemory 還是只是它只在做 full GC 拖慢部電話吧, 係 android 部手 ...
dragonken 發表於 2015-6-16 12:35

Unity Game o系Android度跑.. 有Memory Issue唔係乜野新鮮事... 自己Google吓

OK.. 我唔識Java... 所以我係用"問句"... 而我只係假設.. 如果一個program有正確design.. 根據個language本身o既特性去寫一個"正常"的application是唔應該有問題.. 咁講ok嘛?

TOP