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

สำหรับคำถามที่เกี่ยวข้องกับการวัดหรือปรับปรุงรหัสและประสิทธิภาพการใช้งาน

26
เหตุใดการประมวลผลอาร์เรย์ที่เรียงลำดับจึงเร็วกว่าการประมวลผลอาร์เรย์ที่ไม่เรียงลำดับ
Наэтотвопросестьответына กองมากเกินнарусском : Почемуотсортированныймассивобрабатываетсябыстрее, чемнеотсортированный? นี่คือโค้ด C ++ ที่แสดงพฤติกรรมที่แปลกประหลาดบางอย่าง ด้วยเหตุผลแปลก ๆ บางอย่างการเรียงลำดับข้อมูลทำให้โค้ดเร็วขึ้นเกือบหกเท่า: #include <algorithm> #include <ctime> #include <iostream> int main() { // Generate data const unsigned arraySize = 32768; int data[arraySize]; for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256; // !!! With this, the …

30
ฉันควรใช้ค่า“ href” ใดสำหรับลิงก์ JavaScript“ #” หรือ“ javascript: void (0)”
ต่อไปนี้เป็นสองวิธีในการสร้างลิงก์ที่มีวัตถุประสงค์เพื่อเรียกใช้โค้ด JavaScript เพียงอย่างเดียว จะดีกว่าในแง่ของการทำงานความเร็วในการโหลดหน้าวัตถุประสงค์ในการตรวจสอบความถูกต้องและอื่น ๆ function myJsFunc() { alert("myJsFunc"); } <a href="#" onclick="myJsFunc();">Run JavaScript Code</a> เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายตัวอย่างข้อมูล หรือ function myJsFunc() { alert("myJsFunc"); } <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a> เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายตัวอย่างข้อมูล

30
ทำไมตัวเลียนแบบ Android จึงช้า เราจะเร่งอีมูเลเตอร์ Android ให้เร็วขึ้นได้อย่างไร? [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันมี โปรเซสเซอร์ Celeron 2.67 GHz และ RAM ขนาด1.21 GB ในเครื่องx86 Windows XP Professional ความเข้าใจของฉันคือว่าAndroid Emulatorควรเริ่มต้นอย่างรวดเร็วบนเครื่องดังกล่าว แต่สำหรับฉันมันไม่ได้ ฉันได้ปฏิบัติตามคำแนะนำทั้งหมดในการตั้งค่า IDE, SDK, JDKs และประสบความสำเร็จในการเริ่มต้นโปรแกรมจำลองอย่างรวดเร็ว แต่นั่นหายากมาก หากเป็นไปได้ฉันจะแก้ไขปัญหานี้ได้อย่างไร แม้ว่ามันจะเริ่มต้นและโหลดหน้าจอหลักมันก็ซบเซามาก ฉันลองใช้Eclipse IDEในเวอร์ชัน 3.5 (Galileo) และ3.4 (Ganymede) แล้ว

21
ความแตกต่างระหว่างการโทรและการสมัครคืออะไร?
ความแตกต่างระหว่างการใช้callและapplyการเรียกใช้ฟังก์ชันคืออะไร var func = function() { alert('hello!'); }; func.apply(); VS func.call(); มีความแตกต่างด้านประสิทธิภาพระหว่างสองวิธีดังกล่าวข้างต้นหรือไม่? เมื่อเป็นที่ดีที่สุดที่จะใช้callมากกว่าapplyและในทางกลับกัน?

10
ปรับปรุงประสิทธิภาพ INSERT ต่อวินาทีของ SQLite
การเพิ่มประสิทธิภาพของ SQLite นั้นยุ่งยาก ประสิทธิภาพการแทรกจำนวนมากของแอพพลิเคชั่น C สามารถเปลี่ยนจาก 85 เม็ดต่อวินาทีไปเป็นมากกว่า 96,000 เม็ดต่อวินาที! พื้นหลัง:เรากำลังใช้ SQLite เป็นส่วนหนึ่งของแอปพลิเคชันเดสก์ท็อป เรามีข้อมูลการกำหนดค่าจำนวนมากที่เก็บไว้ในไฟล์ XML ที่มีการแยกวิเคราะห์และโหลดลงในฐานข้อมูล SQLite เพื่อการประมวลผลเพิ่มเติมเมื่อเริ่มต้นแอปพลิเคชัน SQLite นั้นเหมาะสำหรับสถานการณ์นี้เพราะมันรวดเร็วไม่ต้องมีการกำหนดค่าพิเศษและฐานข้อมูลจะถูกเก็บไว้ในดิสก์เป็นไฟล์เดียว เหตุผล: ตอนแรกฉันรู้สึกผิดหวังกับการแสดงที่ฉันได้เห็น ปรากฎว่าประสิทธิภาพของ SQLite อาจแตกต่างกันอย่างมีนัยสำคัญ (ทั้งสำหรับการแทรกจำนวนมากและการเลือก) ขึ้นอยู่กับวิธีการกำหนดค่าฐานข้อมูลและวิธีการที่คุณใช้ API ไม่ใช่เรื่องง่ายที่จะคิดออกว่าตัวเลือกและเทคนิคทั้งหมดเป็นอย่างไรดังนั้นฉันจึงคิดว่าควรสร้างรายการวิกิชุมชนนี้เพื่อแบ่งปันผลลัพธ์กับผู้อ่าน Stack Overflow เพื่อช่วยคนอื่น ๆ ในการตรวจสอบปัญหาเดียวกัน การทดลอง:แทนที่จะพูดถึงเคล็ดลับประสิทธิภาพในแง่ทั่วไป (เช่น"ใช้ธุรกรรม!" ) ฉันคิดว่ามันดีที่สุดในการเขียนรหัส C และวัดผลกระทบของตัวเลือกต่างๆ เราจะเริ่มด้วยข้อมูลง่ายๆ: ไฟล์ข้อความที่คั่นด้วยแท็บ TAB ขนาด 28 MB (ประมาณ 865,000 บันทึก) ของตารางการขนส่งที่สมบูรณ์สำหรับเมืองโตรอนโต …

3
ทำไมการพิมพ์“ B” ช้ากว่าการพิมพ์“ #” มาก
ฉันสร้างเมทริกซ์สองตัวของ1000x 1000: แรกเมทริกซ์: และO ประการที่สองเมทริกซ์: และ#OB ใช้รหัสต่อไปนี้เมทริกซ์แรกใช้เวลา 8.52 วินาทีในการทำให้เสร็จสมบูรณ์: Random r = new Random(); for (int i = 0; i < 1000; i++) { for (int j = 0; j < 1000; j++) { if(r.nextInt(4) == 0) { System.out.print("O"); } else { System.out.print("#"); } } System.out.println(""); } ด้วยรหัสนี้เมทริกซ์ที่สองใช้เวลา 259.152 วินาทีในการทำให้เสร็จสมบูรณ์: …

8
การจัดทำดัชนีฐานข้อมูลทำงานอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เนื่องจากการจัดทำดัชนีมีความสำคัญมากเมื่อชุดข้อมูลของคุณมีขนาดเพิ่มขึ้นมีใครสามารถอธิบายได้ว่าการจัดทำดัชนีทำงานอย่างไรในระดับฐานข้อมูลผู้ไม่เชื่อเรื่องพระเจ้า? สำหรับข้อมูลเกี่ยวกับแบบสอบถามเพื่อสร้างดัชนีฟิลด์ให้ดูที่ฉันจะสร้างดัชนีคอลัมน์ฐานข้อมูลได้อย่างไร

10
ทำไมการเติมแบบวนรอบในแบบวนรอบจึงเร็วกว่าการวนซ้ำแบบรวมกันมาก?
สมมติว่าa1, b1, c1และd1ชี้ไปที่หน่วยความจำและกองรหัสตัวเลขของฉันมีห่วงหลักดังต่อไปนี้ const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } การวนซ้ำนี้จะดำเนินการ 10,000 ครั้งผ่านการforวนรอบนอกอื่น เพื่อเพิ่มความเร็วฉันเปลี่ยนรหัสเป็น: for (int j = 0; j < n; j++) { a1[j] += b1[j]; } for (int j = 0; j < …

10
ทำไม“ 1000000000000000 ในช่วง (1000000000000001)” เร็วมากใน Python 3
ฉันเข้าใจว่าrange()ฟังก์ชั่นซึ่งจริงๆแล้วเป็นประเภทวัตถุใน Python 3สร้างเนื้อหาในทันทีคล้ายกับเครื่องกำเนิด นี่เป็นกรณีที่ฉันคาดว่าบรรทัดต่อไปนี้จะใช้เวลามากเกินไปเพราะในการพิจารณาว่า 1 quadrillion อยู่ในช่วงหรือไม่ต้องสร้างค่า quadrillion: 1000000000000000 in range(1000000000000001) ยิ่งกว่านั้น: ดูเหมือนว่าไม่ว่าฉันจะเพิ่มศูนย์เป็นจำนวนเท่าใดการคำนวณมากหรือน้อยก็ใช้เวลาเท่ากัน ฉันได้ลองสิ่งนี้เช่นกัน แต่การคำนวณก็ยังเกือบจะทันที: 1000000000000000000000 in range(0,1000000000000000000001,10) # count by tens ถ้าฉันพยายามที่จะใช้ฟังก์ชั่นพิสัยของตัวเองผลที่ออกมาไม่ค่อยดีเท่าไหร่ !! def my_crappy_range(N): i = 0 while i < N: yield i i += 1 return อะไรคือสิ่งที่range()วัตถุที่ทำภายใต้ประทุนที่ทำให้มันอย่างรวดเร็ว? คำตอบ Martijn Pieters'ได้รับเลือกเพื่อความสมบูรณ์ของมัน แต่ยังเห็นคำตอบแรก abarnert ของสำหรับการสนทนาที่ดีของสิ่งที่มันหมายถึงการrangeที่จะเป็นที่เต็มเปี่ยมลำดับในหลาม 3 และข้อมูลบางส่วน / คำเตือนเกี่ยวกับความไม่ลงรอยกันศักยภาพในการ__contains__เพิ่มประสิทธิภาพการทำงานข้ามการใช้งานหลาม …

14
<เร็วกว่า <= หรือไม่
คือเร็วกว่าif( a &lt; 901 )if( a &lt;= 900 ) ไม่เหมือนกับตัวอย่างง่ายๆนี้ แต่มีการเปลี่ยนแปลงประสิทธิภาพเล็กน้อยในรหัสซับซ้อนของลูป ฉันคิดว่ามันต้องทำอะไรบางอย่างกับรหัสเครื่องที่สร้างขึ้นในกรณีที่มันเป็นจริง

21
วิธีการนับจำนวนคีย์ / คุณสมบัติของวัตถุใน JavaScript อย่างมีประสิทธิภาพ
วิธีที่เร็วที่สุดในการนับจำนวนคีย์ / คุณสมบัติของวัตถุคืออะไร เป็นไปได้ไหมที่จะทำได้โดยไม่ต้องวนซ้ำวัตถุ? ie โดยไม่ต้องทำ var count = 0; for (k in myobj) if (myobj.hasOwnProperty(k)) count++; (Firefox ให้__count__คุณสมบัติที่เป็นเวทมนตร์แต่สิ่งนี้ถูกลบออกไปรอบ ๆ เวอร์ชัน 4)

5
ทำไมการเปลี่ยน 0.1f ถึง 0 ทำให้ประสิทธิภาพลดลง 10 เท่า?
ทำไมรหัสนี้ const float x[16] = { 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6}; const float z[16] = {1.123, 1.234, 1.345, 156.467, 1.578, 1.689, 1.790, 1.812, 1.923, 2.034, 2.145, 2.256, 2.367, 2.478, 2.589, 2.690}; float y[16]; for (int i = 0; i …

10
การแทนที่ตัวนับลูป 32 บิตเป็น 64 บิตจะนำเสนอการเบี่ยงเบนประสิทธิภาพที่บ้าคลั่งด้วย _mm_popcnt_u64 บน Intel CPUs
ฉันกำลังมองหาวิธีที่เร็วที่สุดในการจัดpopcountเก็บข้อมูลขนาดใหญ่ ฉันพบลักษณะพิเศษที่แปลกมาก : การเปลี่ยนตัวแปรลูปจากunsignedเป็นuint64_tทำให้ประสิทธิภาพลดลง 50% บนพีซีของฉัน เกณฑ์มาตรฐาน #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr &lt;&lt; "usage: array_size in MB" &lt;&lt; endl; return -1; } uint64_t size = atol(argv[1])&lt;&lt;20; uint64_t* buffer = new uint64_t[size/8]; char* charbuffer = …

16
การจัดรูปแบบสตริง:% กับ. format
Python 2.6 แนะนำstr.format()วิธีการที่มีไวยากรณ์แตกต่างกันเล็กน้อยจาก%ผู้ให้บริการที่มีอยู่ ไหนดีกว่าและสำหรับสถานการณ์อะไร ต่อไปนี้ใช้แต่ละวิธีและมีผลลัพธ์เหมือนกันดังนั้นความแตกต่างคืออะไร #!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i …

29
คุณจะสร้างโปรไฟล์สคริปต์ Python ได้อย่างไร?
โครงการออยเลอร์และการแข่งขันการเข้ารหัสอื่น ๆ มักจะมีเวลาสูงสุดในการรัน กับงูหลามบางครั้งแนวทางที่ค่อนข้างค่อนข้างแออัดเกินไป - __main__คือการเพิ่มรหัสระยะเวลาที่จะ วิธีที่ดีในการทำโพรไฟล์ว่าโปรแกรม Python ใช้เวลานานแค่ไหน?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.