คำถามติดแท็ก benchmarking

Benchmarking เป็นกระบวนการเปรียบเทียบระบบหรือกระบวนการตั้งแต่สองระบบขึ้นไปภายใต้สถานการณ์ที่มีการควบคุมเพื่อให้มีการวัดเชิงปริมาณที่จะเปรียบเทียบหรือจัดอันดับ ควรใช้แท็กการเปรียบเทียบสำหรับคำถามเกี่ยวกับวิธีดำเนินงานการเปรียบเทียบหรือคำถามทางทฤษฎีไม่ใช่สำหรับรายการผลการเปรียบเทียบหรือคำขอข้อมูลการเปรียบเทียบ คำถามเหล่านี้ไม่อยู่ในหัวข้อสำหรับ Stack Overflow

7
วิธีใช้นาฬิกา () ใน C ++
ฉันจะโทรclock()เข้าได้C++อย่างไร? ตัวอย่างเช่นฉันต้องการทดสอบว่าการค้นหาเชิงเส้นใช้เวลาเท่าใดในการค้นหาองค์ประกอบที่กำหนดในอาร์เรย์
127 c++  benchmarking  clock 

18
วิธีคำนวณเวลาดำเนินการของข้อมูลโค้ดใน C ++
ฉันต้องคำนวณเวลาดำเนินการของข้อมูลโค้ด C ++ เป็นวินาที ต้องใช้งานได้ทั้งบนเครื่อง Windows หรือ Unix ฉันใช้รหัสรหัสต่อไปนี้เพื่อทำสิ่งนี้ (นำเข้าก่อน) clock_t startTime = clock(); // some code here // to compute its execution duration in runtime cout << double( clock() - startTime ) / (double)CLOCKS_PER_SEC<< " seconds." << endl; อย่างไรก็ตามสำหรับอินพุตขนาดเล็กหรือคำสั่งสั้น ๆ เช่น a = a + 1 ฉันจะได้ผลลัพธ์ "0 วินาที" …
121 c++  benchmarking 

10
ทำไม Go จึงช้ามาก (เมื่อเทียบกับ Java)
ดังที่เราเห็นจากเกมเกณฑ์มาตรฐานภาษาคอมพิวเตอร์ในปี 2010: Go จะช้ากว่าCโดยเฉลี่ย 10 เท่า Go ช้ากว่าJava 3 เท่า!? สิ่งนี้จะเป็นได้อย่างไรโดยจำไว้ว่า Go compiler สร้างโค้ดเนทีฟสำหรับการดำเนินการ คอมไพเลอร์ที่ยังไม่บรรลุนิติภาวะสำหรับ Go? หรือมีปัญหาบางอย่างกับภาษา Go? แก้ไข: คำตอบส่วนใหญ่ปฏิเสธความช้าของ Go โดยอ้างว่าปัญหาอยู่ในคอมไพเลอร์ที่ยังไม่บรรลุนิติภาวะ ดังนั้นฉันจึงได้ทำการทดสอบด้วยตัวเองเพื่อคำนวณตัวเลข Fibonacci : อัลกอริทึมซ้ำทำงานใน Go (freebsd, 6g) ด้วยsameความเร็วเช่นเดียวกับใน C (พร้อมตัวเลือก O3) ตัวเรียกซ้ำที่น่าเบื่อทำงานใน Go 2 timesช้ากว่าใน C (พร้อมตัวเลือก -O3 กับ -O0 - เหมือนกัน) แต่ฉันไม่เคยเห็น 10x ลดลงเหมือนในเกม Benchmarks

4
การเปรียบเทียบ (python เทียบกับ c ++ โดยใช้ BLAS) และ (numpy)
ฉันต้องการเขียนโปรแกรมที่ใช้ประโยชน์จากฟังก์ชันพีชคณิตเชิงเส้น BLAS และ LAPACK อย่างกว้างขวาง เนื่องจากประสิทธิภาพเป็นปัญหาฉันจึงทำการเปรียบเทียบและอยากทราบว่าแนวทางที่ฉันทำนั้นถูกต้องหรือไม่ ฉันมีผู้เข้าแข่งขันสามคนและต้องการทดสอบประสิทธิภาพของพวกเขาด้วยการคูณเมทริกซ์ - เมทริกซ์อย่างง่าย ผู้เข้าแข่งขัน ได้แก่ Numpy ใช้เฉพาะฟังก์ชันของdot. Python เรียกฟังก์ชัน BLAS ผ่านวัตถุที่ใช้ร่วมกัน C ++ เรียกฟังก์ชัน BLAS ผ่านวัตถุที่ใช้ร่วมกัน สถานการณ์ ฉันใช้การคูณเมทริกซ์ - เมทริกซ์สำหรับมิติiต่างๆ iทำงานจาก 5 ถึง 500 โดยเพิ่มขึ้น 5 และเมทริกซ์m1และm2ตั้งค่าดังนี้: m1 = numpy.random.rand(i,i).astype(numpy.float32) m2 = numpy.random.rand(i,i).astype(numpy.float32) 1. เป็นก้อน รหัสที่ใช้มีลักษณะดังนี้: tNumpy = timeit.Timer("numpy.dot(m1, m2)", "import numpy; from __main__ …
107 c++  python  numpy  benchmarking  blas 

8
ฉันจะเปรียบเทียบโค้ด JavaScript ได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีแพ็คเกจที่ช่วยฉันเปรียบเทียบโค้ด JavaScript หรือไม่? ฉันไม่ได้หมายถึง Firebug และเครื่องมือดังกล่าว ฉันต้องการเปรียบเทียบฟังก์ชัน JavaScript 2 แบบที่ฉันได้ใช้งาน ฉันคุ้นเคยกับโมดูล Benchmark ( Benchmark.pm ) ของ Perl เป็นอย่างดีและฉันกำลังมองหาสิ่งที่คล้ายกันใน JavaScript การให้ความสำคัญกับการเปรียบเทียบโค้ด JavaScript หายไปหรือไม่ ฉันสามารถใช้เวลาเพียงครั้งเดียวของฟังก์ชันได้หรือไม่?

4
LINQ Ring: Any () เทียบกับ () สำหรับคอลเลกชันขนาดใหญ่
เนื่องจากวัตถุจำนวนมากมีความแตกต่างด้านประสิทธิภาพระหว่างสิ่งต่อไปนี้หรือไม่? คอลเลกชันประกอบด้วย : myCollection.Contains(myElement) นับได้ใด ๆ : myCollection.Any(currentElement => currentElement == myElement)

4
Meteor จะมีประสิทธิภาพเพียงใดในขณะที่แบ่งปันคอลเลกชันขนาดใหญ่ในหมู่ลูกค้าจำนวนมาก
ลองนึกภาพกรณีต่อไปนี้: ไคลเอนต์ 1,000 รายเชื่อมต่อกับเพจ Meteor ที่แสดงเนื้อหาของคอลเลกชัน "Somestuff" "Somestuff" เป็นคอลเลกชันที่มีสินค้า 1,000 ชิ้น มีคนแทรกรายการใหม่ลงในคอลเลกชัน "Somestuff" อะไรจะเกิดขึ้น: ทั้งหมดMeteor.Collectionบนไคลเอนต์จะได้รับการอัปเดตเช่นการแทรกที่ส่งต่อไปยังพวกเขาทั้งหมด (ซึ่งหมายถึงข้อความแทรกหนึ่งข้อความที่ส่งไปยังลูกค้า 1,000 ราย) ค่าใช้จ่ายในแง่ของ CPU สำหรับเซิร์ฟเวอร์คืออะไรในการพิจารณาว่าไคลเอ็นต์ใดที่ต้องอัปเดต? ถูกต้องหรือไม่ที่จะส่งต่อเฉพาะค่าที่แทรกไปยังไคลเอนต์ไม่ใช่รายการทั้งหมด วิธีนี้ใช้ในชีวิตจริงได้อย่างไร? มีการวัดประสิทธิภาพหรือการทดลองในระดับดังกล่าวหรือไม่

4
ประสิทธิภาพที่แปลกประหลาดเพิ่มขึ้นในเกณฑ์มาตรฐานอย่างง่าย
เมื่อวานฉันพบบทความของ Christoph Nahr ชื่อ ".NET Struct Performance" ซึ่งเปรียบเทียบหลายภาษา (C ++, C #, Java, JavaScript) สำหรับวิธีการที่เพิ่มโครงสร้างสองจุด ( doubletuples) ตามที่ปรากฏเวอร์ชัน C ++ ใช้เวลาประมาณ 1,000ms ในการดำเนินการ (การทำซ้ำ 1e9) ในขณะที่ C # ไม่สามารถทำงานได้ต่ำกว่า ~ 3000ms ในเครื่องเดียวกัน (และทำงานได้แย่กว่าใน x64) เพื่อทดสอบด้วยตัวเองฉันใช้รหัส C # (และทำให้ง่ายขึ้นเล็กน้อยเพื่อเรียกเฉพาะเมธอดที่มีการส่งผ่านพารามิเตอร์ด้วยค่า) และรันบนเครื่อง i7-3610QM (บูสต์ 3.1Ghz สำหรับคอร์เดียว), RAM 8GB, Win8 1 โดยใช้. NET 4.5.2, …

2
ความแตกต่างระหว่าง as.POSIXct / as.POSIXlt และ strptime สำหรับการแปลงเวกเตอร์อักขระเป็น POSIXct / POSIXlt
ฉันได้ติดตามคำถามมากมายที่นี่ซึ่งถามเกี่ยวกับวิธีการแปลงเวกเตอร์อักขระเป็นคลาสวันที่และเวลา ฉันมักจะเห็น 2 วิธีคือ strptime และ as.POSIXct / as.POSIXlt ฉันดู 2 ฟังก์ชั่น แต่ไม่ชัดเจนว่าความแตกต่างคืออะไร strptime function (x, format, tz = "") { y <- .Internal(strptime(as.character(x), format, tz)) names(y$year) <- names(x) y } <bytecode: 0x045fcea8> <environment: namespace:base> as.POSIXct function (x, tz = "", ...) UseMethod("as.POSIXct") <bytecode: 0x069efeb8> <environment: namespace:base> เป็น POSIXlt function …
97 r  date  time  benchmarking 

8
เหตุใดการแยกสตริงใน C ++ จึงช้ากว่า Python
ฉันกำลังพยายามแปลงรหัสจาก Python เป็น C ++ เพื่อเพิ่มความเร็วและเพิ่มทักษะ C ++ ที่เป็นสนิมของฉัน เมื่อวานนี้ฉันรู้สึกตกใจเมื่อการใช้งานบรรทัดการอ่านอย่างไร้เดียงสาจาก stdin ใน Python เร็วกว่า C ++ มาก (ดูสิ่งนี้ ) วันนี้ในที่สุดฉันก็ค้นพบวิธีการแยกสตริงใน C ++ ด้วยการรวมตัวคั่น (ความหมายที่คล้ายกันกับการแยกของ python ()) และตอนนี้ฉันกำลังประสบกับ deja vu! รหัส C ++ ของฉันใช้เวลาทำงานนานกว่ามาก (แม้ว่าจะไม่ใช่ลำดับความสำคัญมากกว่าเช่นเดียวกับบทเรียนเมื่อวานนี้) รหัส Python: #!/usr/bin/env python from __future__ import print_function import time import sys count = 0 start_time …

13
การตีความเกณฑ์มาตรฐานใน C, Clojure, Python, Ruby, Scala และอื่น ๆ [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ข้อจำกัดความรับผิดชอบ ฉันรู้ว่าเกณฑ์มาตรฐานเทียมนั้นชั่วร้าย พวกเขาสามารถแสดงผลลัพธ์สำหรับสถานการณ์แคบ ๆ ที่เฉพาะเจาะจงเท่านั้น ฉันไม่คิดว่าภาษาหนึ่งดีกว่าภาษาอื่นเพราะม้านั่งโง่ ๆ อย่างไรก็ตามฉันสงสัยว่าทำไมผลลัพธ์จึงแตกต่างกันมาก โปรดดูคำถามของฉันที่ด้านล่าง คำอธิบายเกณฑ์มาตรฐานคณิตศาสตร์ Benchmark คือการคำนวณทางคณิตศาสตร์อย่างง่ายเพื่อหาคู่ของจำนวนเฉพาะที่แตกต่างกันด้วย 6 (เรียกว่าsexy primes ) เช่น sexy primes ต่ำกว่า 100 จะเป็น:(5 11) (7 13) (11 17) (13 19) (17 23) (23 29) (31 37) (37 43) (41 47) (47 53) (53 …

8
การวัดและเวลามาตรฐานสำหรับวิธี Ruby
ฉันจะวัดเวลาที่ใช้โดยวิธีการและข้อความแต่ละรายการในวิธีนั้นใน Ruby ได้อย่างไร หากคุณเห็นวิธีการด้านล่างฉันต้องการวัดเวลาทั้งหมดที่ใช้โดยวิธีการและเวลาที่ใช้ในการเข้าถึงฐานข้อมูลและการเข้าถึงซ้ำ ฉันไม่ต้องการเขียน Benchmark.measure ก่อนทุกคำสั่ง ล่ามทับทิมให้ตะขอสำหรับทำสิ่งนี้แก่เราหรือไม่? def foo # code to access database # code to access redis. end
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.