→ james732:這三個地方,compile的最佳化可以應付嗎?(對這領域不熟) 03/01 23:18
推 tropical72:primer 提到,i++ 要多一個暫存器,時間差在這. 03/01 23:26
推 purpose:compiler 應該無法確定在 for body 內有沒有改過 s 長度 03/01 23:26
→ purpose:所以最佳化應該不敢動這部份吧,猜測 03/01 23:27
→ akasan:其實2跟3 compiler 都消的掉 03/01 23:28
→ james732:改成 void tranform(const char * const s) 的話能消1嗎? 03/01 23:29
→ akasan:gcc 不會, 但有看過一些會針對標準函數特化的paper 03/01 23:35
→ uranusjr:for (int i = 0; s[i] != '\0'; i++) 就好了, strlen 一 03/01 23:56
→ uranusjr:次都不用 03/01 23:57
推 Ebergies:i++ 在這種用途通常都會跟 ++i 一模一樣 03/02 00:50
推 abzxcx:++i 比 i++ 快 !? 真假 @@!! 03/02 14:19
推 chchwy:如果compiler沒有優化過,那++i是快了一點沒錯 03/02 14:39
→ chchwy:可以通常都會被優化掉,而且這個速度差距也很小很小 03/02 14:40