Şöyle bir benchmark testi yaptım. (Release modunda) find ile upperBound aynı çıktı ve trisect ise baya geride kaldı
ayrıca dizi içerisinden almadan direk ekrana yazdırdığım zaman find işlevi gibi çalıştığını fark ettim
Tuple!(SortedRange!(double[], "a < b"), SortedRange!(double[], "a < b"), SortedR
ange!(double[], "a < b"))([0, 10, 20], [], [30, 40])
a < b şeklinde denetim var :)
import std.stdio;
import std.algorithm;
import std.range;
import std.datetime;
int main(string[] argv){
double[] arr = [ 0, 10, 20, 30, 40 ];
void ll(){
auto sonuç = arr.assumeSorted.trisect(25)[2];
}
void l2(){
auto sonuç = arr.assumeSorted.upperBound(25);
}
void l3(){
auto sonuç = find!("a > b")(arr, 25);
}
auto m = benchmark!(ll, l2, l3)(1_000_000);
writeln(m[0].msecs, "--", m[1].msecs, "--", m[1].msecs);
while(1){}
return 0;
}
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]