Re: [討論] 寫三元判斷式code review被打槍

看板Soft_Job (軟體人)作者 (阿ㄆㄧㄚˇ)時間1年前 (2022/12/18 20:59), 1年前編輯推噓5(5015)
留言20則, 12人參與, 1年前最新討論串10/15 (看更多)
※ 引述《unixxxx (皓皓)》之銘言: : 隨著語法的進步 : 很多會寫 code 的人都很少寫判斷式了 : 很多Javascript 高手都是用 switch 取代 好啦 假設不是反串 我覺得滿有道理的 但有一點其實你說錯了 其實並不是語法進步 之前學 Rust 覺得哇 pattern matching 真是他媽神 好潮喔 後來跑去學 OCaml 我才發現(Rust設計者是OCaml粉 一開始的compiler就是用OCaml寫) 阿幹 原來很多觀念 OCaml早就有了 編譯器/直譯器還會幫你檢查你的match是不是包含了所有的case 老實講寫ML真的會帶來很多跟C/C++不同的思維 所以與其說語法在進步 不如說在語法在逐漸把過去FP的東西搬進來 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.111.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1671368370.A.6EA.html ※ 編輯: EricTCartman (36.231.111.242 臺灣), 12/18/2022 21:01:41

12/18 23:48, 1年前 , 1F
是說switch的效率到底有沒有比if else高啊?之前看人家測
12/18 23:48, 1F

12/18 23:48, 1年前 , 2F
試,超過3個選項的話,switch的效率比較好,但是之前跟別
12/18 23:48, 2F

12/18 23:48, 1年前 , 3F
人討論,他一直堅持if效率更好,不管幾個判斷
12/18 23:48, 3F
現在編譯器很發達,如果雙方僵持不下,我是建議直接看asm跟量效能 阿如果看不懂asm,代表程度還沒有到要吵這種效能的地步 我的經驗是branch misprediction的效能影響還比較嚴重 而且實務上也更容易遇到 現在編譯器已經發達到有些人寫C++都不用reference跟pointer O2 O3開下去速度照樣ㄅㄧㄤˋㄅㄧㄤˋ叫的地步

12/18 23:50, 1年前 , 4F
看你編譯跟執行環境
12/18 23:50, 4F
※ 編輯: EricTCartman (36.231.111.242 臺灣), 12/19/2022 00:42:13

12/19 10:30, 1年前 , 5F
看asm也不夠準啦,寫的程式碼片段讓分支預測器或快取預抓
12/19 10:30, 5F

12/19 10:30, 1年前 , 6F
太好猜,那就會有虛假的跑分效應
12/19 10:30, 6F

12/19 10:33, 1年前 , 7F
辣個效能是能影響多少?有時間擔心 switch 跟 if else 的效
12/19 10:33, 7F

12/19 10:33, 1年前 , 8F
能差異,不如想想一些多層的 for 迴圈是不是必要…
12/19 10:33, 8F

12/19 11:11, 1年前 , 9F
普遍討論是多condition的情況下switch稍稍略優於if-else
12/19 11:11, 9F

12/19 11:12, 1年前 , 10F
但差異也很微小 與其在那邊爭哪個performance好 乖乖看情
12/19 11:12, 10F

12/19 11:12, 1年前 , 11F
境寫可讀性高的code還比較實際一點
12/19 11:12, 11F

12/19 12:21, 1年前 , 12F
全部都放進 embedded system 跑來看看。
12/19 12:21, 12F

12/19 16:51, 1年前 , 13F
switch有些語言改的很棒 結合lambda清爽很多
12/19 16:51, 13F

12/19 18:57, 1年前 , 14F
不用吵了,array lookup 比 switch case / if else 都快
12/19 18:57, 14F

12/20 11:44, 1年前 , 15F
switch 跟 if-else的速度在實際上真的有人在意嗎
12/20 11:44, 15F

12/20 13:28, 1年前 , 16F
寫MCU的人比較會在意吧.老闆要最便宜的MCU但是搞最多的
12/20 13:28, 16F

12/20 13:28, 1年前 , 17F
功能的時候...
12/20 13:28, 17F

12/20 19:08, 1年前 , 18F
我是聽朋友說在產線上每次都差一點點時間,累積起來就是
12/20 19:08, 18F

12/20 19:08, 1年前 , 19F
很多時間,當然有差
12/20 19:08, 19F

12/21 00:26, 1年前 , 20F
寫韌體的會在意阿
12/21 00:26, 20F
文章代碼(AID): #1ZdmwoRg (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1ZdmwoRg (Soft_Job)