在日常程式設計過程中,我們可能經常需要copy各種陣列,一般來說有以下幾種常見的方法:array.copy,ilist.copy,binaryreader.readbytes,buffer.blockcopy,以及system.buffer.memcpyimpl,由於最後一種需要使用指標,所以本文不引入該方法。
本次測試,使用以上前4種方法,各執行1000萬次,觀察結果。
[csharp]view plain
copy
using
system;
using
system.collections.generic;
using
system.diagnostics;
using
system.io;
namespace
benchmarkcopyarray
private
static
void
testcopy(action testmethod,
string
methodname)
testmethod();
stopwatch.stop();
console.writeline(": seconds, ."
, methodname, stopwatch.elapsed.seconds, stopwatch.elapsed.milliseconds);
} }
class
testarraycopy
; public
void
testbinaryreader()
public
void
testconverttolist()
public
void
testarraydotcopy()
public
void
testblockcopy()
} }
執行結果如下:
C 中內聯函式的效率問題
2 沒有內聯函式時 include include include using namespace std inline void print void print std cout hello world 10seconds 使用內聯函式 include include include using...
列表去重中的copy問題
一般而言,列表去重無非那幾種方法。第一種,利用set 沒有重複值的特性去重,簡單,但是無序。第二種,判斷迴圈的元素是否在新列表中以此來去掉重複值,可以保持原來的順序。第三種,迴圈遍歷,判斷當前元素的個數是否大於1,然後在刪除當前元素 需注意刪除元素後列表的變化 無序。今天主要說的就是第三種方法了。示...
copy模組中的copy與deepcopy的區別
每空閒下來,就覺得以前寫的部落格很low.也許現在也很low 好吧就當公升級版的low吧 如果要了解copy與deepcopy的區別,就需要了解python的儲存機制 python在賦值會在記憶體裡開闢乙個空間來存放值這就叫 記憶體位址 同時會開闢乙個空間來存放名字叫命名,在資料相同長度在一定範圍 ...