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

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

4
คำสั่ง INSERT หลายคำเทียบกับ INSERT เดียวที่มีหลายค่า
ฉันกำลังทำการเปรียบเทียบประสิทธิภาพระหว่างการใช้คำสั่ง 1000 INSERT: INSERT INTO T_TESTS (TestId, FirstName, LastName, Age) VALUES ('6f3f7257-a3d8-4a78-b2e1-c9b767cfe1c1', 'First 0', 'Last 0', 0) INSERT INTO T_TESTS (TestId, FirstName, LastName, Age) VALUES ('32023304-2e55-4768-8e52-1ba589b82c8b', 'First 1', 'Last 1', 1) ... INSERT INTO T_TESTS (TestId, FirstName, LastName, Age) VALUES ('f34d95a7-90b1-4558-be10-6ceacd53e4c4', 'First 999', 'Last 999', 999) .. ตรงกันข้ามโดยใช้คำสั่ง INSERT เดียวที่มีค่า …

1
วิธีใดเป็นวิธีที่ดีที่สุดในการตั้งค่ารีจิสเตอร์เป็นศูนย์ในแอสเซมบลี x86: xor, mov หรือและ?
คำแนะนำต่อไปนี้ทั้งหมดทำสิ่งเดียวกัน: ตั้งค่า%eaxเป็นศูนย์ วิธีใดเหมาะสมที่สุด (ต้องใช้รอบเครื่องน้อยที่สุด) xorl %eax, %eax mov $0, %eax andl $0, %eax

30
ประสิทธิภาพ C ++ เทียบกับ Java / C #
ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ความเข้าใจของฉันคือ C / C ++ สร้างโค้ดเนทีฟเพื่อรันบนสถาปัตยกรรมเครื่องเฉพาะ ในทางกลับกันภาษาเช่น Java และ C # ทำงานบนเครื่องเสมือนซึ่งแยกสถาปัตยกรรมดั้งเดิมออกไป ดูเหมือนจะเป็นไปไม่ได้ที่ Java หรือ C # จะจับคู่ความเร็วของ C ++ เนื่องจากขั้นตอนกลางนี้อย่างไรก็ตามฉันได้รับแจ้งว่าคอมไพเลอร์ล่าสุด ("ฮอตสปอต") สามารถบรรลุความเร็วนี้หรือสูงกว่านั้นได้ บางทีนี่อาจเป็นคำถามเกี่ยวกับคอมไพเลอร์มากกว่าคำถามด้านภาษา แต่ใครก็ได้สามารถอธิบายเป็นภาษาอังกฤษแบบธรรมดาได้ว่าภาษาเครื่องเสมือนเหล่านี้จะทำงานได้ดีกว่าภาษาแม่หรือไม่
119 c#  java  c++  performance  bytecode 

25
ฉันควรใช้การคูณหรือการหาร?
นี่เป็นคำถามสนุก ๆ โง่ ๆ : สมมติว่าเราต้องดำเนินการง่ายๆโดยที่เราต้องการครึ่งหนึ่งของค่าของตัวแปร โดยทั่วไปมีสองวิธีในการดำเนินการนี้: y = x / 2.0; // or... y = x * 0.5; สมมติว่าเราใช้โอเปอเรเตอร์มาตรฐานที่ให้มาพร้อมกับภาษาอันไหนมีประสิทธิภาพดีกว่ากัน? ฉันเดาว่าการคูณมักจะดีกว่าดังนั้นฉันจึงพยายามยึดติดกับสิ่งนั้นเมื่อฉันเขียนโค้ด แต่ฉันต้องการยืนยันสิ่งนี้ แม้ว่าโดยส่วนตัวแล้วฉันสนใจคำตอบสำหรับPython 2.4-2.5 แต่อย่าลังเลที่จะโพสต์คำตอบสำหรับภาษาอื่น ๆ ! และหากคุณต้องการอย่าลังเลที่จะโพสต์วิธีที่น่าสนใจอื่น ๆ (เช่นการใช้ตัวดำเนินการกะบิต) เช่นกัน

10
ฉันจะวัดความเร็วของโค้ดที่เขียนด้วย PHP ได้อย่างไร? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิด6 เดือนที่แล้ว . ปรับปรุงคำถามนี้ ฉันจะบอกได้อย่างไรว่าคลาสใดของจำนวนมาก (ซึ่งทั้งหมดทำงานเหมือนกัน) ดำเนินการเร็วกว่า มีซอฟต์แวร์วัดผลหรือไม่

12
MySQL: วิธีที่เร็วที่สุดในการนับจำนวนแถว
วิธีใดในการนับจำนวนแถวที่ควรเร็วกว่าใน MySQL นี้: SELECT COUNT(*) FROM ... WHERE ... หรือทางเลือกอื่น: SELECT 1 FROM ... WHERE ... // and then count the results with a built-in function, e.g. in PHP mysql_num_rows() ใครจะคิดว่าวิธีแรกน่าจะเร็วกว่าเนื่องจากเป็นอาณาเขตของฐานข้อมูลอย่างชัดเจนและเครื่องมือฐานข้อมูลควรเร็วกว่าวิธีอื่นเมื่อกำหนดสิ่งต่างๆเช่นนี้ภายใน
117 mysql  performance 

5
มีเหตุผลด้านประสิทธิภาพในการประกาศพารามิเตอร์เมธอดใน Java หรือไม่?
มีเหตุผลด้านประสิทธิภาพในการประกาศพารามิเตอร์เมธอดใน Java หรือไม่? ใน: public void foo(int bar) { ... } เมื่อเทียบกับ: public void foo(final int bar) { ... } สมมติว่ามีการอ่านอย่างเดียวและไม่เคยแก้ไขได้ในbarfoo()
117 java  performance  final 

30
แนวทางปฏิบัติในการเข้ารหัสซึ่งช่วยให้คอมไพเลอร์ / เครื่องมือเพิ่มประสิทธิภาพสร้างโปรแกรมได้เร็วขึ้น
หลายปีก่อนคอมไพเลอร์ C ไม่ค่อยฉลาดนัก ในฐานะที่เป็นวิธีแก้ปัญหา K&R ได้คิดค้นคีย์เวิร์ดregisterเพื่อบอกใบ้ถึงคอมไพเลอร์ว่าอาจเป็นความคิดที่ดีที่จะเก็บตัวแปรนี้ไว้ในรีจิสเตอร์ภายใน พวกเขายังสร้างตัวดำเนินการระดับอุดมศึกษาเพื่อช่วยสร้างรหัสที่ดีขึ้น เมื่อเวลาผ่านไปคอมไพเลอร์ก็ครบกำหนด พวกเขาฉลาดมากที่การวิเคราะห์โฟลว์ช่วยให้ตัดสินใจได้ดีขึ้นเกี่ยวกับค่าที่จะเก็บไว้ในรีจิสเตอร์มากกว่าที่คุณจะทำได้ คีย์เวิร์ด register ไม่สำคัญ FORTRAN อาจเร็วกว่า C สำหรับการดำเนินการบางประเภทเนื่องจากปัญหานามแฝง ในทางทฤษฎีด้วยการเข้ารหัสอย่างรอบคอบเราสามารถหลีกเลี่ยงข้อ จำกัด นี้เพื่อให้เครื่องมือเพิ่มประสิทธิภาพสร้างรหัสที่เร็วขึ้น มีแนวทางปฏิบัติในการเข้ารหัสอะไรบ้างที่อาจทำให้คอมไพลเลอร์ / เครื่องมือเพิ่มประสิทธิภาพสร้างโค้ดได้เร็วขึ้น การระบุแพลตฟอร์มและคอมไพเลอร์ที่คุณใช้จะได้รับการชื่นชม ทำไมเทคนิคนี้ดูเหมือนจะใช้ได้ผล? ขอแนะนำโค้ดตัวอย่าง นี่คือคำถามที่เกี่ยวข้อง [แก้ไข] คำถามนี้ไม่เกี่ยวกับกระบวนการโดยรวมในการสร้างโปรไฟล์และเพิ่มประสิทธิภาพ สมมติว่าโปรแกรมได้รับการเขียนอย่างถูกต้องรวบรวมด้วยการเพิ่มประสิทธิภาพเต็มรูปแบบทดสอบและนำไปใช้ในการผลิต อาจมีโครงสร้างในโค้ดของคุณที่ห้ามไม่ให้เครื่องมือเพิ่มประสิทธิภาพทำงานให้ดีที่สุดเท่าที่จะทำได้ คุณสามารถทำอะไรได้บ้างในการ refactor ที่จะลบข้อห้ามเหล่านี้และอนุญาตให้เครื่องมือเพิ่มประสิทธิภาพสร้างรหัสได้เร็วขึ้น [แก้ไข] ลิงก์ที่เกี่ยวข้องกับออฟเซ็ต

4
วิธีโอเวอร์โหลด std :: swap ()
std::swap()ถูกใช้โดยคอนเทนเนอร์มาตรฐานจำนวนมาก (เช่นstd::listและstd::vector) ในระหว่างการเรียงลำดับและแม้กระทั่งการกำหนด แต่การนำ std ไปใช้swap()นั้นเป็นแบบทั่วไปและค่อนข้างไม่มีประสิทธิภาพสำหรับประเภทที่กำหนดเอง ดังนั้นประสิทธิภาพจะได้รับจากการโอเวอร์โหลดstd::swap()ด้วยการใช้งานเฉพาะประเภทที่กำหนดเอง แต่คุณจะใช้มันได้อย่างไรเพื่อให้ std container ใช้?

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

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

3
ข้อดีของการใช้การอ้างอิงการส่งต่อแบบอิงตามช่วงสำหรับลูปคืออะไร?
const auto&จะเพียงพอถ้าฉันต้องการดำเนินการอ่านอย่างเดียว อย่างไรก็ตามฉันได้ชน for (auto&& e : v) // v is non-const สองสามครั้งเมื่อเร็ว ๆ นี้ สิ่งนี้ทำให้ฉันสงสัย: เป็นไปได้ไหมว่าในบางกรณีมุมที่คลุมเครือมีประโยชน์ด้านประสิทธิภาพในการใช้การอ้างอิงการส่งต่อเมื่อเทียบกับauto&หรือconst auto&? ( shared_ptrเป็นผู้ต้องสงสัยคดีมุมอับ) อัปเดต สองตัวอย่างที่ฉันพบในรายการโปรดของฉัน: ข้อเสียของการใช้การอ้างอิง const เมื่อทำซ้ำในประเภทพื้นฐานหรือไม่? ฉันสามารถทำซ้ำค่าของแผนที่โดยใช้ range-based for loop ได้หรือไม่? โปรดตั้งสมาธิกับคำถาม: เหตุใดฉันจึงต้องการใช้ auto && แบบอิงตามช่วงสำหรับลูป

10
เร่งเวลาเริ่มต้น Spring Boot
ฉันมีแอปพลิเคชัน Spring Boot ฉันได้เพิ่มการอ้างอิงจำนวนมาก (น่าเสียดายที่ดูเหมือนว่าฉันต้องการสิ่งเหล่านี้ทั้งหมด) และเวลาเริ่มต้นก็เพิ่มขึ้นค่อนข้างมาก เพียงแค่ทำSpringApplication.run(source, args)ใช้เวลา 10 วินาที แม้ว่าอาจจะไม่มากเมื่อเทียบกับสิ่งที่ "เคยชิน" แต่ฉันไม่พอใจที่ต้องใช้เวลามากขนาดนั้นส่วนใหญ่เป็นเพราะมันทำลายขั้นตอนการพัฒนา ในตอนนี้แอปพลิเคชันมีขนาดค่อนข้างเล็กดังนั้นฉันจึงถือว่าเวลาส่วนใหญ่เกี่ยวข้องกับการอ้างอิงที่เพิ่มเข้ามาไม่ใช่คลาสของแอปเอง ฉันถือว่าปัญหาคือการสแกน classpath แต่ฉันไม่แน่ใจว่าจะทำอย่างไร: ยืนยันว่าเป็นปัญหา (เช่นวิธี "ดีบัก" Spring Boot) ถ้าเป็นสาเหตุจริงๆจะ จำกัด ยังไงให้มันเร็วขึ้น ตัวอย่างเช่นถ้าฉันรู้ว่าการอ้างอิงหรือแพ็คเกจบางอย่างไม่มีสิ่งที่ Spring ควรจะสแกนมีวิธี จำกัด หรือไม่ ฉันคิดว่าการปรับปรุง Spring ให้มีการเริ่มต้นถั่วแบบคู่ขนานระหว่างการเริ่มต้นจะทำให้สิ่งต่างๆเร็วขึ้น แต่คำขอการเพิ่มประสิทธิภาพนั้นเปิดให้บริการตั้งแต่ปี 2554 โดยไม่มีความคืบหน้าใด ๆ ฉันเห็นความพยายามอื่น ๆ ใน Spring Boot เองเช่นการปรับปรุงความเร็วในการสแกน Tomcat JarScanningแต่นั่นเป็นความเฉพาะของ Tomcat และถูกยกเลิกไปแล้ว บทความนี้: http://www.nurkiewicz.com/2010/12/speeding-up-spring-integration-tests.html แม้ว่าจะมุ่งเป้าไปที่การทดสอบการรวม …

4
เมื่อใดที่ฉันควรใช้ pandas apply () ในรหัสของฉัน
applyฉันได้เห็นหลายคำตอบโพสต์คำถามในกองมากเกินเกี่ยวข้องกับการใช้วิธีแพนด้า ฉันยังเห็นผู้ใช้แสดงความคิดเห็นใต้พวกเขาโดยบอกว่า " applyช้าและควรหลีกเลี่ยง" ฉันได้อ่านบทความมากมายในหัวข้อประสิทธิภาพที่อธิบายว่าapplyช้า ฉันยังได้เห็นข้อจำกัดความรับผิดชอบในเอกสารว่าapplyเป็นเพียงฟังก์ชันอำนวยความสะดวกในการส่ง UDFs (ดูเหมือนจะไม่พบในตอนนี้) ดังนั้นฉันทามติทั่วไปคือapplyควรหลีกเลี่ยงถ้าเป็นไปได้ อย่างไรก็ตามสิ่งนี้ทำให้เกิดคำถามต่อไปนี้: ถ้าapplyแย่มากแล้วทำไมถึงอยู่ใน API? ฉันควรสร้างรหัสapplyฟรีอย่างไรและเมื่อใด เคยมีสถานการณ์ใด ๆ ที่applyเป็นสิ่งที่ดี (ดีกว่าการแก้ปัญหาที่เป็นไปได้อื่น ๆ )?

9
วิธีใดในการเขียนไฟล์. bat ของ Windows เพื่อฆ่ากระบวนการ? [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการในวันที่ 11 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ทุกครั้งที่ฉันเปิดเครื่องพัฒนาของ บริษัท ฉันต้องฆ่า 10+ กระบวนการโดยใช้ตัวจัดการงานหรือแอปจัดการกระบวนการอื่น ๆ เพื่อให้ได้ประสิทธิภาพที่ดีจาก IDE ของฉัน ใช่นี่เป็นกระบวนการจากโปรแกรมที่ บริษัท ของฉันติดตั้งบนเครื่องของฉันเพื่อความปลอดภัยและการปฏิบัติตามข้อกำหนด สิ่งที่ฉันต้องการทำคือมีไฟล์. bat หรือสคริปต์บางประเภทซึ่งฉันสามารถฆ่ากระบวนการที่เป็นปัญหาได้ มีใครรู้วิธีทำบ้างไหม?

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