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

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

5
Count vs len ใน Django QuerySet
ใน Django เนื่องจากฉันมีสิ่งQuerySetที่ฉันกำลังจะทำซ้ำและพิมพ์ผลลัพธ์ตัวเลือกที่ดีที่สุดสำหรับการนับวัตถุคืออะไร? len(qs)หรือqs.count()? (นอกจากนี้เนื่องจากการนับวัตถุในการทำซ้ำเดียวกันไม่ใช่ตัวเลือก)

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

5
Javascript เมื่อใดควรใช้ต้นแบบ
ฉันต้องการทราบว่าเมื่อใดจึงเหมาะสมที่จะใช้เมธอดต้นแบบใน js ควรใช้เสมอหรือไม่? หรือมีบางกรณีที่ไม่แนะนำให้ใช้และ / หรือถูกลงโทษด้านประสิทธิภาพ? ในการค้นหารอบ ๆ ไซต์นี้ด้วยวิธีการทั่วไปสำหรับการกำหนดเนมสเปซใน js ดูเหมือนว่าส่วนใหญ่จะใช้การใช้งานที่ไม่ใช่ต้นแบบ: เพียงแค่ใช้อ็อบเจกต์หรืออ็อบเจ็กต์ฟังก์ชันเพื่อห่อหุ้มเนมสเปซ มาจากภาษาตามคลาสมันยากที่จะไม่ลองวาดแนวขนานและคิดว่าต้นแบบก็เหมือนกับ "คลาส" และการใช้งานเนมสเปซที่ฉันพูดถึงก็เหมือนกับวิธีการคงที่

13
Entity Framework ช้าเกินไป ตัวเลือกของฉันคืออะไร? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันได้ทำตามมนต์ "Don't Optimize Prematurely" และเขียนโค้ดบริการ WCF ของฉันโดยใช้ Entity Framework อย่างไรก็ตามฉันทำโปรไฟล์ประสิทธิภาพและ Entity Framework ช้าเกินไป (แอปของฉันประมวลผล 2 ข้อความในเวลาประมาณ 1.2 วินาทีโดยที่แอป (เดิม) ที่ฉันเขียนใหม่ทำ 5-6 ข้อความในเวลาเดียวกัน (แอปเดิมเรียก sprocs สำหรับการเข้าถึงฐานข้อมูล) การทำโปรไฟล์ของฉันชี้ไปที่ Entity Framework โดยใช้เวลาส่วนใหญ่ต่อข้อความ ตัวเลือกของฉันคืออะไร? มี ORM ที่ดีกว่านี้ไหม (สิ่งที่รองรับการอ่านและเขียนวัตถุตามปกติและทำได้เร็ว .. ) มีวิธีทำให้ Entity Framework เร็วขึ้นหรือไม่? …

6
กำลังใช้ java Map.containsKey () ซ้ำซ้อนเมื่อใช้ map.get ()
ฉันสงสัยมาระยะหนึ่งแล้วว่ามันเป็นไปได้หรือไม่ตามแนวทางปฏิบัติที่ดีที่สุดที่จะละเว้นจากการใช้containsKey()วิธีการjava.util.Mapและทำการตรวจสอบค่าว่างกับผลลัพธ์จากget(). เหตุผลของฉันที่ดูเหมือนว่าจะทำซ้ำซ้อนการค้นหาของมูลค่าสองครั้ง - ครั้งแรกสำหรับและจากนั้นอีกครั้งสำหรับcontainsKey()get() ในทางกลับกันอาจเป็นไปได้ว่าการใช้Mapแคชมาตรฐานส่วนใหญ่ในการค้นหาครั้งสุดท้ายหรือคอมไพลเลอร์สามารถกำจัดความซ้ำซ้อนได้และเพื่อความสามารถในการอ่านโค้ดจึงควรรักษาcontainsKey()ส่วนนั้นไว้ ฉันจะขอบคุณมากสำหรับความคิดเห็นของคุณ

5
ฐานข้อมูล Android SQLite: การแทรกช้า
ฉันต้องการแยกวิเคราะห์ไฟล์ XML ที่ค่อนข้างใหญ่ (แตกต่างกันไปประมาณหนึ่งร้อยกิโลไบต์และหลายร้อยกิโลไบต์) ซึ่งฉันใช้Xml#parse(String, ContentHandler)อยู่ ฉันกำลังทดสอบกับไฟล์ 152KB ในระหว่างการแยกฉันยังใส่ข้อมูลในฐานข้อมูล SQLite getWritableDatabase().insert(TABLE_NAME, "_id", values)ใช้สายคล้ายกับต่อไปนี้: ทั้งหมดนี้ใช้เวลาประมาณ 80 วินาทีสำหรับไฟล์ทดสอบ 152KB (ซึ่งมาพร้อมกับการแทรกแถวประมาณ 200 แถว) เมื่อฉันแสดงความคิดเห็นในคำสั่งแทรกทั้งหมด (แต่ปล่อยไว้อย่างอื่นเช่นสร้างContentValuesเป็นต้น) ไฟล์เดียวกันจะใช้เวลาเพียง 23 วินาที เป็นเรื่องปกติหรือไม่ที่การดำเนินการฐานข้อมูลจะมีค่าใช้จ่ายสูงขนาดนี้? ฉันสามารถทำอะไรเกี่ยวกับเรื่องนั้นได้หรือไม่?

4
ลอยเทียบกับประสิทธิภาพสองเท่า
ฉันทำการทดสอบเวลาและอ่านบทความเช่นนี้ด้วย (ความคิดเห็นล่าสุด) และดูเหมือนว่าใน Release build ค่า float และ double ใช้เวลาในการประมวลผลเท่ากัน เป็นไปได้อย่างไร? เมื่อ float มีความแม่นยำน้อยกว่าและมีขนาดเล็กกว่าเมื่อเทียบกับค่าสองค่า CLR จะเพิ่มเป็นสองเท่าในเวลาประมวลผลเดียวกันได้อย่างไร?
92 c#  .net  clr  performance 

6
วิธีที่รวดเร็วในการคัดลอกพจนานุกรมใน Python
ฉันมีโปรแกรม Python ที่ทำงานร่วมกับพจนานุกรมได้มากมาย ฉันต้องทำสำเนาพจนานุกรมหลายพันครั้ง ฉันต้องการสำเนาของทั้งคีย์และเนื้อหาที่เกี่ยวข้อง สำเนาจะถูกแก้ไขและจะต้องไม่เชื่อมโยงกับต้นฉบับ (เช่นการเปลี่ยนแปลงในสำเนาจะต้องไม่ส่งผลกระทบต่อต้นฉบับ) คีย์คือสตริงค่าคือจำนวนเต็ม (0/1) ปัจจุบันฉันใช้วิธีง่ายๆ: newDict = oldDict.copy() การสร้างโปรไฟล์รหัสของฉันแสดงให้เห็นว่าการดำเนินการคัดลอกใช้เวลาส่วนใหญ่ มีทางเลือกอื่นที่เร็วกว่าสำหรับdict.copy()วิธีนี้หรือไม่? อะไรจะเร็วที่สุด?

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

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

10
ฉันจะปรับปรุงประสิทธิภาพผ่านแนวทางระดับสูงได้อย่างไรเมื่อใช้สมการแบบยาวใน C ++
ฉันกำลังพัฒนาแบบจำลองทางวิศวกรรมบางอย่าง สิ่งนี้เกี่ยวข้องกับการใช้สมการยาวบางอย่างเช่นสมการนี้เพื่อคำนวณความเค้นในวัสดุเช่นยาง: T = ( mu * ( pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a * ( pow(l1 * l2 * l3, -0.1e1 / 0.3e1) - l1 * l2 * l3 * pow(l1 * l2 * l3, -0.4e1 / 0.3e1) / 0.3e1 ) * …

12
Speedup IntelliJ-Idea
ฉันใช้ intelliJ สำหรับการพัฒนา Scala และได้รับRAM ใหม่8 GBเมื่อสัปดาห์ที่แล้วดังนั้นฉันจึงคิดว่า: ถึงเวลาใช้งานแล้ว ฉันจะตรวจสอบการจัดการงานของฉันและพบ IntelliJ ใช้~ 250MB จากคราสฉันรู้ว่าการปรับแต่งตัวเลือก JVM ช่วยได้มากในการปรับปรุงความเร็วฉันจึง googled ... และพบสิ่งนี้สำหรับ OS X ฉันไม่พบตัวเลือก JVM ในทันทีดังนั้นฉันจึงเริ่มปรับแต่งXmx ที่ 1 GB ฉันรู้ว่ามันไม่เริ่มต้นอีกต่อไป ฉันตรวจสอบเวอร์ชัน java intelliJ พบว่ามันล้าสมัยและ 32 บิต ดังนั้นในการใช้ JDK และ64 บิตปัจจุบันของคุณคุณต้องเปลี่ยนลิงค์เป็น from: IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe ถึง IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT และปรับ …

1
วิธี HashSet <T> .removeAll นั้นช้าอย่างน่าตกใจ
เมื่อเร็ว ๆ นี้ Jon Skeet ได้ยกหัวข้อการเขียนโปรแกรมที่น่าสนใจในบล็อกของเขา: "มีช่องว่างในสิ่งที่เป็นนามธรรมของฉัน Liza ที่รัก Liza ที่รัก" (เน้นเพิ่มเติม): ฉันมีชุด - อันที่HashSetจริง ฉันต้องการลบบางรายการออกจากมัน ... และหลายรายการอาจไม่มีอยู่จริง อันที่จริงในกรณีทดสอบของเราไม่มีรายการใดในคอลเล็กชัน "การลบ" ที่จะอยู่ในชุดเดิม ฟังดู - และเป็นรหัสที่ง่ายมาก ท้ายที่สุดเราต้องSet&lt;T&gt;.removeAllช่วยเราใช่มั้ย? เราระบุขนาดของชุด "แหล่งที่มา" และขนาดของคอลเล็กชัน "การลบ" ในบรรทัดคำสั่งและสร้างทั้งสองชุด ชุดแหล่งที่มามีเฉพาะจำนวนเต็มที่ไม่เป็นลบ ชุดการลบมีเฉพาะจำนวนเต็มลบ เราวัดว่าต้องใช้เวลานานแค่ไหนในการลบองค์ประกอบทั้งหมดโดยใช้System.currentTimeMillis()ซึ่งไม่ใช่นาฬิกาจับเวลาที่แม่นยำที่สุดในโลก แต่เพียงพอแล้วในกรณีนี้อย่างที่คุณเห็น นี่คือรหัส: import java.util.*; public class Test { public static void main(String[] args) { int sourceSize = …

8
เหตุใดจึงช้ากว่า int ใน x64 Java นาน
ฉันใช้ Windows 8.1 x64 พร้อมอัปเดต Java 7 45 x64 (ไม่ได้ติดตั้ง Java 32 บิต) บนแท็บเล็ต Surface Pro 2 โค้ดด้านล่างใช้เวลา 1688ms เมื่อประเภทของ i ยาวและ 109ms เมื่อฉันเป็น int เหตุใดลำดับความยาว (ประเภท 64 บิต) จึงช้ากว่า int บนแพลตฟอร์ม 64 บิตที่มี JVM 64 บิต การคาดเดาเพียงอย่างเดียวของฉันคือ CPU ใช้เวลาในการเพิ่มจำนวนเต็ม 64 บิตนานกว่า 32 บิตหนึ่ง แต่ดูเหมือนจะไม่น่าเป็นไปได้ ฉันสงสัยว่า Haswell ไม่ได้ใช้ตัวเติมแบบกระเพื่อม ฉันกำลังเรียกใช้สิ่งนี้ใน Eclipse …

3
รับจำนวนแถวทั้งหมดจาก OFFSET / FETCH NEXT
ดังนั้นฉันจึงมีฟังก์ชันที่ส่งคืนระเบียนจำนวนหนึ่งที่ฉันต้องการใช้การเพจสำหรับเว็บไซต์ของฉัน มีการแนะนำให้ฉันใช้ Offset / Fetch Next ใน SQL Server 2012 เพื่อทำสิ่งนี้ให้สำเร็จ ในเว็บไซต์ของเราเรามีพื้นที่ที่แสดงจำนวนบันทึกทั้งหมดและหน้าที่คุณอยู่ในเวลานั้น ก่อนหน้านี้ฉันได้รับชุดระเบียนทั้งหมดและสามารถสร้างเพจบนโปรแกรมนั้นได้ แต่การใช้วิธี SQL กับ FETCH NEXT X ROWS เท่านั้นฉันได้รับแถว X กลับมาเท่านั้นดังนั้นฉันจึงไม่รู้ว่าชุดระเบียนทั้งหมดของฉันคืออะไรและจะคำนวณหน้าต่ำสุดและสูงสุดของฉันได้อย่างไร วิธีเดียวที่ฉันสามารถบอกได้คือการเรียกใช้ฟังก์ชันสองครั้งและนับแถวในแถวแรกจากนั้นเรียกใช้ที่สองด้วย FETCH NEXT มีวิธีที่ดีกว่าไหมที่จะไม่ให้ฉันเรียกใช้แบบสอบถามซ้ำสองครั้ง ฉันพยายามเร่งประสิทธิภาพไม่ให้ช้าลง

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