Re: [閒聊]程式
先離題一下,小的開始想反省,我的中文是不是有什麼根本上的問
題,才會偶爾就覺得看不懂文章..Orz
好,回到程式效能評估的問題,不太確定命題的界定範圍,所以我
只針對我懂的一些general issue拋磚引玉一下:
1.如果是驅動載具的軟體效能有問題,因為載具會牽涉到相關的
domain know-how,所以必須掌握像API的實際運作原理等資訊,
以決定是否排除或著重於這方面
2.要針對語言處理效能問題,最簡單的方式是應用特定工具。自己
曾經使用過IBM Rational的Quantify,跟主程式一起compile,
跑一遍之後就可以找出函式使用時間的ranking及function call
map,這樣就可以知道哪些函式可能有潛在的cost問題
3.特定工具沒有或太貴? 那就自己土法煉鋼囉~ (又不是沒煉過:p)
把自己要測的函式前後各取個timestamp,也慢慢可以找出效能
瓶頸
4.以C來說,一般而言,malloc()這類的取得記憶體資源的函式,
一次一次的呼叫常常會造成效能瓶頸,如果真的需要每次取得片
段大小不一的記憶體,一個較佳的解決方案可能是先一次取得大
量記憶體再自行規劃,這算是屬於語言本身的domain know-how
5.至於在coding時常見的一個效能問題,就是邏輯問題啦~ 先不提
O(n)啦,NP Complete 等的complexity theory問題(因為偶也快
忘光了Orz),在loop裡面的多餘重複動作因為不會造成infinite
loop而不常為人所注意,但是卻可能有潛在的時間或空間浪費..
呃,沒有了,才疏學淺的我沒墨水了,趕快回去繼續K書,請各位
高手出馬..
※ 引述《markchen ()》之銘言:
: 近來看了一些文章 了解真正高手 程語的運作、寫作不是很大的問題
: 真正具有意義的對於程式效能的評估 以及domain knowledge~
: 、程式專案的分工合作。
: 更重視的是學理上概念--->尤指那種學一次 可以一輩子受用的知識(很強調!)
: 至於像程語 這類型變革速度快的 則重視其經驗的累積。
: 很多程式設計師 在程式的熟綀度上大多是沒問題的 但是在專業上的知識累積
: 就不太行常聽到有人說 我會使用C/C++ java Vb.net 等等... 可是這不是專業...
: 這只是一個工具。
: 應該有人遇過 對一些載具作控制時 因不知道其載具特性 程式根本連寫都
: 寫不出來亦或許已經寫了出來 細看一下程式碼可能不難 但是別人會不了解 有些參數怎
: 麼下的這就是專業性的問題 沒有概念 連code都不知道該怎寫~
==
語言是工具喔,那C++是哪門子的可怕工具啊..
--
沒人看的blog: http://dflucifer.spaces.live.com/
誠徵新竹山友或車友 ^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.124.8.50
推
12/22 19:03, , 1F
12/22 19:03, 1F
討論串 (同標題文章)