Soft_Job 板


LINE

大數運算用低階語言實做會比高階語言快? 這是直覺, 但不一定正確的想法 舉例來說, 若把一個大數加在另一個大數身上 組語寫出的的結果, 假設是100個 x86 指令 但一個支援大數運算高階語言 compile 出來的結果, 只是 add A, B 1個 VM 指令而己 不過若是要在 x86 中執行它, 卻可能需要 110個 x86 指令... 110 > 100 所以組語快 10%, 是這樣嗎? 若是該 VM 發現該電腦上有特別的硬體, (如Java Chip) 或是發現 現在所執行的CPU的有支援某些 SSE 指令 或是連發現有裝 顯示卡 ,把顯卡也拿來運算 或是異想天開地, 丟給最近很紅的 ....天邊一朵雲 去計算 或是我所沒寫出來的, 更多種種的可能 原本讓人覺得是 "overhead" 的 VM 卻讓100個指令的組語, 變成反而可能是 "最慢" 的了 當然, 聽到這裡, 可能有人就會想, 再用組語追逐上面提的種種可能... 甚至底下提到的GC, 自己也可以去實做出取代它的功能 但那就只是自己去實做出了一部份的高階語言, 或VM , 或Java罷了 個人淺見 ----- 另外幾百個人一起寫code現實中是有的 不過如果其中每一個人的code, 都會跟另外幾百人有關聯 或是一個錯誤發生, 幾百人都要一起找bug ...那這種案子算是很特別 ※ 引述《Aurim (Who cares?)》之銘言: : 不同時期的人有不同看法吧。 : 當你的工作是OS/driver或比較大型的軟體系統時,看到底下的#1,我想問: : 哪時候才會沒有問題發生呢? : 小公司一個專案的bug編號了不起三位數、四位數,我會說你說得還好。 : 大公司一個長期維護的產品bug編號會是六、七位數以上,每天幾百個人一起改code, : 幾乎每天都有固定數量以上的bug被提報,沒問題發生就是要發生大事了。 : 如果你的工作大半都是在別人幾天前、幾星期前、幾個月前寫的code上抓bug, : 某個程度上,你一定要知道別人、編譯器、作業系統、硬體到底幹了哪些事情的啊, : 只是搞得多清楚的差別。 : ※ 引述《lgd1008 (lgd1008)》之銘言: : : 另外不必事事知道底層的例子, 可以參考自己與身旁同事的 program integration : : 你何時需要知道同事的實作細節? 太概就只有 : : 1.問題發生的時侯, 2.交接的時侯, 3.想找東西學習的時侯... : 你底下說的不一定,我都幹過了,所以我不認為弄半天也沒辦法弄出那樣的效能; : 當然這感受是因人而異的。我會說那並不是什麼大不了的事情。 : 舉個簡單的例子,我高中時曾經用幾個不同語言寫階乘計算的小東西來磨練自己, : 目標是能夠算出電腦記憶體能夠允許的最多位數的階乘。 : 這是個小題目,可是可以讓一個人在已經做好的東西不斷再去加強效能, : 思考怎樣可以讓它跑得更快,比較各種手法的不同效率。 : 因為高階語言的overhead,大數計算用組語作在執行效能上仍然會是最快的。 : 即使是今日,幾乎天天在看微軟的編譯器生出來的機械碼,我的意見不會改變。 : 凡事都有邊際效益的差別,同樣做個對照,低階語言 vs. 高階語言,C vs. Java: : Java JIT再怎麼強,跟C/C++生的原生code就是有效能差異。 : 就算單純是一個固定比例的差異,10%來講,當CPU時脈愈來愈高, : pipeline內能夠同時執行的指令愈多,差那10%,可能代表的就是0.1 GFLOPS的差別。 : 實際上是差更多,我看過的一些案子就是,實際上處理的資料量明明就沒那麼大, : 可是因為garbage collection沒辦法那麼有效消化垃圾,應該是幾台高檔PC當server : 跑起來應該要OK的東西,搞到要用很貴的機器來讓客戶覺得效能能夠令人接受。 : (幾億元的機器來跑,效能仍然令人不滿意,只是可以接受而已) : 關鍵在於你犧牲那些效能,能提高多少生產力,節省多少開發時間, : 會不會有別的問題伴隨而來?上面就提到了garbage collection的問題。 : 不同工具,適合的工作也不同。 : 我只是組語摸了20年,幾個高階語言跟VM的runtime library內部實作看透透, : 在幾個不同領域待過,一點淺見而已。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.27.102
1F:推 ggg12345:所謂VM就是建立在抽象機器上以高階敘述來運作,用組語並非 02/25 22:17
2F:→ ggg12345:是語言敘述問題而是能利用硬體架構與指令細節,充份利用, 02/25 22:20
3F:→ ggg12345:有如一個是外客看略圖找東西,一個是在家鄉地盤找,怎麼比? 02/25 22:21
4F:→ ggg12345:高階語言都算VM,若一個用解譯,但用編譯的執行時不用再譯, 02/25 22:31
5F:→ ggg12345:除非另加硬體並行著做,用同等硬體就是差那一點點,本質啊! 02/25 22:34
6F:→ ggg12345:方便免經驗,不傷大腦的做法總歸是要有代價的,否則無敵囉! 02/25 22:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP