[請益] 幾個演算法與效率問題

看板Programming作者 (道可道非常道)時間14年前 (2010/01/03 11:03), 編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
#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)

01/03 20:38, , 1F
因為測試無聊到連電腦都煩了
01/03 20:38, 1F

01/03 20:38, , 2F
所以就隨便報個數字
01/03 20:38, 2F

01/03 20:38, , 3F
又不是對100000個不同textclip測試
01/03 20:38, 3F

01/03 20:38, , 4F
這種做100000次的測試有啥用…
01/03 20:38, 4F

01/03 21:19, , 5F
php第二個一開始加上$p=0;呢
01/03 21:19, 5F

01/03 21:27, , 6F
Date()可以直接相減嗎? 不用.getTime() ?
01/03 21:27, 6F

01/03 21:27, , 7F
javascript cache的因素不小..
01/03 21:27, 7F

01/03 21:27, , 8F
php也是 一切看設定
01/03 21:27, 8F

01/03 21:27, , 9F
都做一樣的內容其實不準
01/03 21:27, 9F

01/03 23:40, , 10F
php那邊可用strtok來去掉複製字串的動作
01/03 23:40, 10F
文章代碼(AID): #1BG0ZuPg (Programming)