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

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

4
ความถูกต้องของ const สามารถปรับปรุงประสิทธิภาพได้หรือไม่?
ฉันได้อ่านหลายครั้งแล้วว่าการบังคับใช้ความถูกต้องของ const ในรหัส C หรือ C ++ ของคุณไม่เพียง แต่เป็นแนวทางปฏิบัติที่ดีเกี่ยวกับความสามารถในการบำรุงรักษาเท่านั้น แต่ยังอาจทำให้คอมไพเลอร์ของคุณดำเนินการปรับให้เหมาะสมได้ด้วย อย่างไรก็ตามฉันได้อ่านสิ่งที่ตรงกันข้ามอย่างสมบูรณ์เช่นกัน - ว่ามันไม่มีผลต่อประสิทธิภาพเลย ดังนั้นคุณมีตัวอย่างที่ความถูกต้องของ const อาจช่วยคอมไพเลอร์ของคุณในการปรับปรุงประสิทธิภาพโปรแกรมของคุณหรือไม่?

3
ต้นทุนการดำเนินการของอะตอม
ค่าใช้จ่ายของการดำเนินการของอะตอมคืออะไร (เปรียบเทียบและแลกเปลี่ยนหรือเพิ่ม / ลดอะตอม)? กินรอบเท่าไหร่? มันจะหยุดโปรเซสเซอร์อื่นบน SMP หรือ NUMA หรือจะบล็อกการเข้าถึงหน่วยความจำหรือไม่ จะล้างบัฟเฟอร์เรียงลำดับใหม่ใน CPU ที่ไม่ได้รับคำสั่งหรือไม่? จะมีผลอะไรกับแคชบ้าง? ฉันสนใจซีพียูรุ่นใหม่ยอดนิยม: x86, x86_64, PowerPC, SPARC, Itanium

4
รวบรวม C # Lambda Expressions Performance
พิจารณาการจัดการอย่างง่ายต่อไปนี้สำหรับคอลเลกชัน: static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i => i % 2 == 0).Where(i => i > 5); ตอนนี้มาใช้นิพจน์ รหัสต่อไปนี้เทียบเท่าโดยประมาณ: static void UsingLambda() { Func<IEnumerable<int>, IEnumerable<int>> lambda = l => l.Where(i => i % 2 …

5
การเปิด / ปิดแท็กและประสิทธิภาพ?
นี่อาจเป็นคำถามโง่ ๆ แต่ในฐานะคนที่ค่อนข้างใหม่กับ PHP ฉันสงสัยว่ามีปัญหาเกี่ยวกับประสิทธิภาพในการเปิดและปิดแท็ก PHP ในโค้ดเทมเพลต HTML บ่อยๆหรือไม่และหากเป็นเช่นนั้นแนวทางปฏิบัติที่ดีที่สุดในแง่ใดบ้าง ในการทำงานกับแท็ก PHP? คำถามของฉันไม่ได้เกี่ยวกับความสำคัญ / ความถูกต้องของแท็กปิดหรือเกี่ยวกับประเภทของโค้ดที่อ่านได้มากกว่าอีกประเภทหนึ่ง แต่เกี่ยวกับวิธีการแยกวิเคราะห์ / ดำเนินการของเอกสารและผลกระทบที่อาจมีต่อประสิทธิภาพ เพื่อเป็นตัวอย่างให้พิจารณาสองขั้วต่อไปนี้: การผสมแท็ก PHP และ HTML: <?php echo '<tr> <td>'.$variable1.'</td> <td>'.$variable2.'</td> <td>'.$variable3.'</td> <td>'.$variable4.'</td> <td>'.$variable5.'</td> </tr>' ?> // PHP tag opened once การแยกแท็ก PHP และ HTML: <tr> <td><?php echo $variable1 ?></td> <td><?php echo $variable2 ?></td> …

7
JavaScript ที่ไม่สร้างความรำคาญ: <script> ที่ด้านบนหรือด้านล่างของโค้ด HTML?
ฉันเพิ่งอ่านรายการวิธีปฏิบัติที่ดีที่สุดของ Yahoo เพื่อเร่งความเร็วเว็บไซต์ของคุณ พวกเขาแนะนำให้ใส่ JavaScript ที่ด้านล่างของโค้ด HTML เมื่อเราทำได้ แต่ที่ไหนกันแน่และเมื่อไหร่? เราควรใส่ก่อนปิด&lt;/html&gt;หรือหลัง? และเหนือสิ่งอื่นใดเมื่อเราควรใส่ไว้ใน&lt;head&gt;ส่วนนี้?

10
Javascript - แทรกอาร์เรย์ภายในอาร์เรย์อื่น
อะไรคือวิธีที่มีประสิทธิภาพมากกว่าในการแทรกอาร์เรย์ภายในอาร์เรย์อื่น a1 = [1,2,3,4,5]; a2 = [21,22]; newArray - a1.insertAt(2,a2) -&gt; [1,2, 21,22, 3,4,5]; การทำซ้ำ a2 โดยใช้ splice ดูแย่ไปหน่อยจากมุมมองประสิทธิภาพหากอาร์เรย์ a2 มีขนาดใหญ่ ขอบคุณ.

6
ใน java การใช้ byte หรือ short แทน int และ float แทน double มีประสิทธิภาพมากกว่าหรือไม่?
ฉันสังเกตเห็นว่าฉันใช้ int และเพิ่มเป็นสองเท่าไม่ว่าจำนวนจะน้อยหรือมาก ดังนั้นใน java การใช้byteหรือshortแทนที่จะใช้intและfloatแทนที่จะมีประสิทธิภาพมากกว่ากันdouble? สมมติว่าฉันมีโปรแกรมที่มี ints และ doubles มากมาย จะคุ้มไหมที่จะผ่านและเปลี่ยน ints เป็นไบต์หรือกางเกงขาสั้นถ้าฉันรู้ว่าจำนวนนั้นพอดี ฉันรู้ว่า java ไม่มีประเภทที่ไม่ได้ลงชื่อ แต่มีอะไรเพิ่มเติมที่ฉันสามารถทำได้ถ้าฉันรู้ว่าจำนวนจะเป็นบวกเท่านั้น โดยประสิทธิภาพส่วนใหญ่ฉันหมายถึงการประมวลผล ฉันคิดว่าตัวเก็บขยะจะเร็วขึ้นมากถ้าตัวแปรทั้งหมดมีขนาดครึ่งหนึ่งและการคำนวณนั้นก็น่าจะเร็วขึ้นด้วย (ฉันเดาว่าเนื่องจากฉันทำงานกับ Android ฉันก็ต้องกังวลเกี่ยวกับ ram ด้วย) (ฉันจะถือว่าคนเก็บขยะจัดการกับ Objects เท่านั้นไม่ใช่แบบดั้งเดิม แต่ยังคงลบสิ่งดั้งเดิมทั้งหมดในวัตถุที่ถูกทิ้งใช่ไหม) ฉันลองใช้กับแอป Android ขนาดเล็กที่มี แต่ไม่ได้สังเกตเห็นความแตกต่างเลย (แม้ว่าฉันจะไม่ได้วัดอะไร "ทางวิทยาศาสตร์") ฉันคิดผิดหรือเปล่าที่คิดว่าควรเร็วและมีประสิทธิภาพมากกว่านี้ ฉันเกลียดที่จะผ่านและเปลี่ยนแปลงทุกอย่างในโปรแกรมขนาดใหญ่เพื่อพบว่าฉันเสียเวลาไปเปล่า ๆ จะคุ้มไหมที่จะทำตั้งแต่เริ่มต้นโครงการใหม่ (ฉันหมายความว่าฉันคิดว่าทุก ๆ อย่างจะช่วยได้ แต่ถ้าเป็นเช่นนั้นอีกครั้งทำไมดูเหมือนไม่มีใครทำ)

4
ทำไม memmove เร็วกว่า memcpy?
ฉันกำลังตรวจสอบฮอตสปอตประสิทธิภาพในแอปพลิเคชันซึ่งใช้เวลา 50% ใน memmove (3) แอปพลิเคชันจะแทรกจำนวนเต็ม 4 ไบต์นับล้านลงในอาร์เรย์ที่จัดเรียงและใช้ memmove เพื่อเลื่อนข้อมูล "ไปทางขวา" เพื่อให้มีพื้นที่ว่างสำหรับค่าที่แทรก ความคาดหวังของฉันคือการคัดลอกหน่วยความจำนั้นเร็วมากและฉันรู้สึกประหลาดใจที่ใช้เวลากับ memmove นานมาก แต่แล้วฉันก็มีความคิดว่า memmove ทำงานช้าเพราะมันกำลังเคลื่อนย้ายพื้นที่ที่ทับซ้อนกันซึ่งจะต้องดำเนินการแบบวนซ้ำแทนการคัดลอกหน่วยความจำขนาดใหญ่ ฉันเขียน microbenchmark ขนาดเล็กเพื่อดูว่ามีความแตกต่างด้านประสิทธิภาพระหว่าง memcpy และ memmove หรือไม่โดยคาดหวังว่า memcpy จะชนะมือ ฉันใช้เกณฑ์มาตรฐานบนสองเครื่อง (core i5, core i7) และเห็นว่า memmove เร็วกว่า memcpy จริง ๆ บน core i7 ที่เก่ากว่าแม้จะเร็วกว่าเกือบสองเท่า! ตอนนี้ผมกำลังหาคำอธิบาย นี่คือเกณฑ์มาตรฐานของฉัน มันคัดลอก 100 mb ด้วย memcpy จากนั้นย้ายประมาณ …
90 c++  c  performance  memory 

8
ฉันจะปรับฟังก์ชัน ORDER BY RAND () ของ MySQL ให้เหมาะสมได้อย่างไร
mysql-slow.logฉันต้องการที่จะเพิ่มประสิทธิภาพการค้นหาของฉันดังนั้นฉันมองเข้าไปใน ORDER BY RAND()ส่วนใหญ่เป็นคำสั่งของฉันช้ามี ฉันไม่พบวิธีแก้ปัญหาที่แท้จริงในการแก้ไขปัญหานี้ Theres เป็นทางออกที่เป็นไปได้ที่MySQLPerformanceBlogแต่ฉันคิดว่ามันไม่เพียงพอ บนตารางที่ปรับให้เหมาะสมไม่ดี (หรืออัปเดตบ่อยครั้งมีการจัดการโดยผู้ใช้) มันใช้งานไม่ได้หรือฉันต้องเรียกใช้การสืบค้นสองครั้งขึ้นไปก่อนจึงจะสามารถเลือกPHPแถวสุ่มที่สร้างขึ้นได้ มีวิธีแก้ไขปัญหานี้หรือไม่? ตัวอย่างจำลอง: SELECT accomodation.ac_id, accomodation.ac_status, accomodation.ac_name, accomodation.ac_status, accomodation.ac_images FROM accomodation, accomodation_category WHERE accomodation.ac_status != 'draft' AND accomodation.ac_category = accomodation_category.acat_id AND accomodation_category.acat_slug != 'vendeglatohely' AND ac_images != 'b:0;' ORDER BY RAND() LIMIT 1

6
Javascript Set เทียบกับประสิทธิภาพของ Array
อาจเป็นเพราะชุดค่อนข้างใหม่สำหรับ Javascript แต่ฉันไม่สามารถค้นหาบทความใน StackO หรือที่อื่นใดที่พูดถึงความแตกต่างของประสิทธิภาพระหว่างทั้งสองใน Javascript ดังนั้นความแตกต่างในแง่ของประสิทธิภาพระหว่างทั้งสองคืออะไร? โดยเฉพาะเมื่อต้องลบเพิ่มและทำซ้ำ

4
v8 ผลกระทบของประสิทธิภาพ JavaScript ของ const, let และ var?
โดยไม่คำนึงถึงความแตกต่างของฟังก์ชันการใช้คำหลักใหม่ "let" และ "const" มีผลกระทบโดยทั่วไปหรือเฉพาะเจาะจงใด ๆ ต่อประสิทธิภาพเมื่อเทียบกับ "var" หลังจากรันโปรแกรม: function timeit(f, N, S) { var start, timeTaken; var stats = {min: 1e50, max: 0, N: 0, sum: 0, sqsum: 0}; var i; for (i = 0; i &lt; S; ++i) { start = Date.now(); f(N); timeTaken = Date.now() - start; …

6
คอมไพเลอร์สร้างโค้ดที่ดีกว่าสำหรับ do-while loops เมื่อเทียบกับลูปประเภทอื่น ๆ หรือไม่?
มีความคิดเห็นในไลบรารีการบีบอัด zlib (ซึ่งใช้ในโปรเจ็กต์ Chromium และอื่น ๆ อีกมากมาย) ซึ่งหมายความว่า do-while loop ใน C สร้างโค้ด "ดีกว่า" ในคอมไพเลอร์ส่วนใหญ่ นี่คือข้อมูลโค้ดที่ปรากฏ do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp; *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp; *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp; *(ushf*)(scan+=2) == *(ushf*)(match+=2) &amp;&amp; scan &lt; strend); /* The funny "do {}" generates better code on most compilers …

19
Google จะเร็วขนาดนี้ได้อย่างไร
ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือเทคโนโลยีและการตัดสินใจในการเขียนโปรแกรมที่ทำให้ Google สามารถตอบคำถามได้อย่างรวดเร็ว ทุกครั้งที่ฉันค้นหาบางสิ่ง (หนึ่งในหลาย ๆ ครั้งต่อวัน) มันทำให้ฉันประหลาดใจเสมอว่าพวกเขาให้ผลลัพธ์ในเวลาใกล้หรือน้อยกว่า 1 วินาที การกำหนดค่าและอัลกอริทึมประเภทใดที่สามารถใช้งานได้ หมายเหตุด้านข้าง:เป็นความคิดที่ท่วมท้นแม้ว่าฉันจะใส่แอปพลิเคชันบนเดสก์ท็อปและใช้งานบนเครื่องของฉันอาจจะไม่เร็วกว่า Google ถึงครึ่งหนึ่ง เรียนรู้ต่อไปฉันพูด นี่คือคำตอบและคำแนะนำที่ยอดเยี่ยมบางส่วนที่มีให้: Google Platform แผนที่ลด อัลกอริทึมที่สร้างขึ้นอย่างระมัดระวัง ฮาร์ดแวร์ - คลัสเตอร์ฟาร์มและคอมพิวเตอร์ราคาถูกจำนวนมาก แคชและโหลดบาลานซ์ ระบบไฟล์ของ Google

5
เหตุใดประเภท Tuple ใหม่ใน. Net 4.0 จึงเป็นประเภทอ้างอิง (คลาส) และไม่ใช่ชนิดค่า (โครงสร้าง)
ไม่มีใครรู้คำตอบและ / หรือมีความคิดเห็นเกี่ยวกับเรื่องนี้? เนื่องจากโดยปกติสิ่งทอจะมีขนาดไม่ใหญ่มากฉันจึงคิดว่าการใช้โครงสร้างจะเหมาะสมกว่าคลาสสำหรับสิ่งเหล่านี้ คุณพูดอะไร?

12
การใช้ฟังก์ชันที่ไม่ระบุชื่อมีผลต่อประสิทธิภาพหรือไม่?
ฉันสงสัยว่ามีความแตกต่างด้านประสิทธิภาพระหว่างการใช้ฟังก์ชันที่มีชื่อและฟังก์ชันที่ไม่ระบุชื่อใน Javascript หรือไม่ for (var i = 0; i &lt; 1000; ++i) { myObjects[i].onMyEvent = function() { // do something }; } เทียบกับ function myEventHandler() { // do something } for (var i = 0; i &lt; 1000; ++i) { myObjects[i].onMyEvent = myEventHandler; } ข้อแรกเป็นระเบียบกว่าเนื่องจากไม่ทำให้โค้ดของคุณยุ่งเหยิงด้วยฟังก์ชันที่ไม่ค่อยได้ใช้งาน แต่คุณจะประกาศฟังก์ชันนั้นซ้ำหลายครั้งหรือไม่?

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