當前位置: 華文星空 > 知識

為什麽現代 CPU 每秒數億次計算,但是程式仍舊很卡?

2022-10-19知識

我這樣拉跨程式設計師寫的程式經常這樣:

  • 不做異步,就在UI執行緒上搞事情.任何事做完之前.程式都是卡的。
  • 不做並列,不管你是多少核cpu.我只有單執行緒
  • 使用網路資源的時候,不處理UI.甚至就幹等,如果網路不穩定.程式就卡住,其實CPU根本沒幹活
  • 寫很多大量無效的型別轉換/裝箱拆箱,聲明使用一大堆集合
  • 為了重用程式碼,同時也懶得最佳化程式碼,一件簡單的事情,交給一個很復雜的模組處理,說人話就是, 你需要一個螺母,你不直接買一個螺母,你買了一輛汽車,然後把螺母拆下來用,下次我需要一個螺絲,我甚至不用之前買的那輛汽車的螺絲,我再買一輛新的....
  • 不管用不用得著,總是使用原始的高畫質資源.比如使用者頭像.貪方便.我直接用1080P的圖也不壓縮...
  • 不緩存任何資源,哪怕一個東西反復被使用,依然不停從資料來源獲取數據...
  • 使用完數據不釋放.... 比如我買了車取下它的螺母用,但是我車也不處理掉,還放在那做擺設.
  • 因為懶得寫合理的數據傳遞.明明要用參數傳遞的數據一股腦放在全域變量. 拿生活做比喻就是我明明只是和你發私信,但是因為懶得寫收件人資訊,直接登人民日報...
  • 我們拉跨程式設計師多半知道寫的東西垃圾在哪裏,他們只是不知道這垃圾啥時候會在實際執行中爆發出問題來.偶爾也不知道這些垃圾組合在一起為啥居然可以執行,更不不知道這些垃圾組合在一起產生哪些新的特性.
  • 哦.最重要的,我們拉跨程式設計師不覺得卡是bug.我們只覺得報錯/崩潰/錯誤的數據展示是BUG...

    ______________________________________________

    2022.7.10 更新,我說怎麽有人來罵我騙人炒股,問題又上熱榜了。我隨便說幾句,那些在華為batm,月入幾狗的,可以去拼,去996,但是還有很多在普通公司鬼混的程式設計師,我說難聽一點,35歲,我們這些破程式設計師競爭力都要下降,各位程式設計師好好想想,10年前學的技術還有多少有用,業務經驗架構倒是有用,但是絕大多數普通人根本進不去那些真的有架構師的公司。在小破公司996有屁用,加班費都不一定有,公司業務好就漲點薪水,最近行情差我那些老同事日子也難過。我自己在前一家公司拼了7年,然後戀愛了,不肯加班了,因為相對薪水好點就被各種搞,我不是讓人去股市追漲殺跌做韭菜,平時學一些金融知識,了解一些世界變化,到股市裏選一些你覺得未來中國能崛起的公司,在低估值的時候投資,沒讓你們做敢死隊。我過去一年半不到收益90%左右根本沒買多少個股,也沒有高頻交易,也沒有盯盤做T。真就是結合一下世界經濟的現狀,國家產業的優勢,國家戰略買而已,也沒說買到什麽很好的位置。也勸大家不要搞什麽追漲殺跌。這不叫投機,叫分享國家發展機遇,就像現在房產不行了,但是過去20年房子漲了多少。但是有興趣的人,可以看看富時a50那些中國龍頭過去20年漲了多少,少則幾倍多則幾十倍比房價還離譜,不要被那些叫上證3000點玩了10年叫罵的騙了,一個程式設計師,最基本的邏輯能力有吧,能顱內做點推演吧(否則真就全程單步debug?)。未來中國什麽行業好什麽行業差能有判斷吧。年輕的時候拿點閑錢投資,你該上班上班,過幾年收益也是支持國家產業升級呀。搞得我多缺德似的。平時多了解世界,多看點書,然後別看太多薦股的,教你搞短線的,你還得上班呢對吧。我過去很長時間家裏人都做股票,但是我不屑一顧,覺得程式設計師薪資也還行,也會穩穩上漲,但是等到奔35去了,年紀大了就知道肝不動了,是後悔沒有早一點學著存錢學著理財的。我工作這麽多年,覺得能堅持做程式的,不管是不是優秀,人普遍都沒啥壞心思都是憨憨,所以我知道我們程式設計師什麽勾心鬥角,鉆營馬屁那是多半不太行的。估計就是腦子普遍還行,所以建議大家可以花點心思了解下,基本的東西沒那麽復雜,但是可以一點閑錢建立習慣,知道自己是不是真的合適。評論我也不處理了,隨便吧。

    2021.11.19 更新,最近還是有人點贊,有點小離譜,這問題生命力真強。

    作為彩 大齡程式設計師,給後輩一個建議,就是多學,但是學精就算了,我等悟性學不精,學得精也很難遇到精密要求自己的自己和要求自己的崗位/公司。多學新東西,就可以去新公司混/或者混到新興崗位上。

    目前我在用xamarin搞app 套用。搞得屎一樣,好在使用者量很少,企業內部用用,也能對付。算是獨立開發者,比較自由。可以決定自由的時間是用來學習/遊戲/股票。就是覺悟得太晚了。現在房價都不怎麽漲,後輩如果現在收入不錯,趕緊開始理財吧,不要像我這麽大年紀才開始搞。

    不要臉的說一句,咱們在搞程式裏面的,不見得算腦子好用的,但是在搞股票的裏面,咱們一定是好用的,程式設計師不要內卷了,去買股票吧。我今年3月份開始炒股收益率都40%多了

    (更新一下,去年21年3月-22年7月 目前收益90%)。

    一天下來,驚呆了,這麽多贊,看來獲贊的主要原因還是達成共鳴了。

    我幹程式設計師也差不多10年了.小學就接觸了一些VB,後來工作就發現,很多時候確實工作上很難都高標準要求自己.所以很佩服那些業余時間還會自己做做計畫的人. 自己經常計畫初期搭個講究的框架,到開發中期,發現原來設計有點不合理.開始重構,然後一天過去發現業務功能非但沒有增加,甚至還制造了更多待最佳化的計畫. 隨著時間推移,計畫進度就更緊張了.越往後就越隨意,再往後就是破窗效應了.一旦你容忍了幾個自己計畫的白癡程式碼,接下來就開始放飛自我了. 這就有點像我剛追女朋友的時候,我每天早期刷牙洗臉刮胡子.到同居後,我就要女朋友逼我洗澡了... 現在十幾年職業生涯過去.發現所有的技術進步無非集中在:

  • 經驗積累,掌握了更多更快的更容易維護開發的手段.雖然這些手段的效能不見得更好.
  • 即使程式未必比過去跑得快,但是程式出問題的時候的bug比過去容易顯示了.
  • 進入職業的中期,深感老板也不在乎的技術,他們腦子都是業務,而你做出自己有成就感的設計提高開發效率的成就感在老板那邊甚至你無法和他分享快樂. 最後逼著自己向老板兜售業務.
  • 所有的技能居然都來自新業務. 比如搞xamarin 因為我需要做ios了.僅此而已.
  • 知乎上很多微軟 谷歌 BAT 的大牛.他們看看著很瀟灑的完成工作. 業余還能發發知乎,帶大家逛,甚至做幾個牛逼的輪子讓大家瞻仰,但是我知道更多的程式設計師都是我這樣平平無奇的人,在大牛眼中可能只是碼農碼畜,把網路上復制的程式碼組合加點業務就是我們的工作寫照了.但這真的是多數程式設計師的工作, 沒成就更無聊.

    看到評論大家開心的血壓拉滿,能給大家帶來一點快樂. 或許是我給程式設計師們帶來過的最大價值了.