看板 Programming 關於我們 聯絡資訊
#1 if (strpos($folder, ": ") === false) continue; else { $find = substr($folder, 0, strpos($folder, ": ")); $replace = substr($folder, strpos($folder, ": ") + 2); } #2 if (($p=strpos($folder, ": ")) === false) continue; else { $find = substr($folder, 0, $p); $replace = substr($folder, $p + 2); } 如題, 使用 php, 以上同一效果的二個寫法,後續只需要用 $find 和 $replace, $p 用不到, 實測在約15次以下前者快,以上後者快, 可是我的程式可能跑這個部分的次數不多, 應選何者較優? #1 txt = txt.replace(/\r\n?/g,'\n'); #2 txt = txt.split('\r\n').join('\n').split('\r').join('\n'); #3 txt = txt.replaceAll('\r\n','\n').replaceAll('\r','\n'); String.prototype.replaceAll = function(r,n) { return this.split(r).join(n); } 如題,以上用 javascript 統一換行字元,一種用 regexp,一種用split+join, 何者較建議使用? 還有在下用以下程式碼實測時,有時跳出的數字差很多是為什麼? (比如一次 4ms,一次 36 ms,有時還會跳出負值) var t = new Date(); var txt = document.getElementById('input').innerHTML; // input 填一段字串 var I = 100000; for (var i=0;i<I;++i){ txt = txt.replace(/\r\n?/g,'\n'); //txt = txt.split('\r\n').join('\n').split('\r').join('\n'); //txt = txt.replaceAll('\r\n','\n').replaceAll('\r','\n'); } var s = (new Date()-t) + 'ms'; alert(s); 以上問題在下需求很簡單, 就是用盡可能效率佳但尚不致太難維護的程式碼達到相同效果。 如果要看情況,煩請列舉不同常見情況下的不同考量,感謝感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.58.108 ※ 編輯: danny0838 來自: 114.45.58.108 (01/03 11:11)
MOONRAKER:因為測試無聊到連電腦都煩了 59.120.168.228 01/03 20:38
MOONRAKER:所以就隨便報個數字 59.120.168.228 01/03 20:38
MOONRAKER:又不是對100000個不同textclip測試 59.120.168.228 01/03 20:38
MOONRAKER:這種做100000次的測試有啥用… 59.120.168.228 01/03 20:38
buganini:php第二個一開始加上$p=0;呢 220.135.231.23 01/03 21:19
buganini:Date()可以直接相減嗎? 不用.getTime() ? 220.135.231.23 01/03 21:27
buganini:javascript cache的因素不小.. 220.135.231.23 01/03 21:27
buganini:php也是 一切看設定 220.135.231.23 01/03 21:27
buganini:都做一樣的內容其實不準 220.135.231.23 01/03 21:27
bob123:php那邊可用strtok來去掉複製字串的動作 59.126.66.114 01/03 23:40