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

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

6
วัดเวลาที่ใช้ในการเรียกใช้คิวรี t-sql
ฉันมีข้อความค้นหา t-sql สองรายการโดยใช้ SqlServer 2005 ฉันจะวัดระยะเวลาที่ใช้ในการรันแต่ละรายการได้นานแค่ไหน ใช้นาฬิกาจับเวลาของฉันไม่ได้ตัด

7
ฟังก์ชั่น list-comprehensions และฟังก์ชั่นการทำงานเร็วกว่า“ for loops” หรือไม่?
ในแง่ของประสิทธิภาพในหลามเป็นรายการความเข้าใจหรือฟังก์ชั่นชอบmap(), filter()และreduce()เร็วกว่าสำหรับห่วง? ทำไมในทางเทคนิคแล้วมันทำงานด้วยความเร็ว Cในขณะที่ for loop ทำงานในความเร็วของ python virtual machine ? สมมติว่าในเกมที่ฉันกำลังพัฒนาฉันต้องวาดแผนที่ที่ซับซ้อนและมีขนาดใหญ่เพื่อใช้เป็นลูป คำถามนี้จะเกี่ยวข้องกันอย่างแน่นอนเช่นหาก list-comprehension เร็วกว่าจริง ๆ มันจะเป็นตัวเลือกที่ดีกว่ามากเพื่อหลีกเลี่ยงความล่าช้า (แม้จะมีความซับซ้อนในการมองเห็นของโค้ด)

10
ตรวจสอบว่าสตริงมีองค์ประกอบจากรายการ (ของสตริง)
สำหรับบล็อกของรหัสต่อไปนี้: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False ผลลัพธ์คือ: กรณีที่ 1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True กรณีที่ 2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False รายการ (listOfStrings) อาจมีหลายรายการ (ขั้นต่ำ 20) และจะต้องมีการตรวจสอบกับหลายพันสาย (เช่น myString) มีวิธีที่ดีกว่า (มีประสิทธิภาพมากขึ้น) ในการเขียนรหัสนี้หรือไม่?

20
ในขณะที่ (1) สำหรับ (;;) มีความแตกต่างความเร็วหรือไม่
รุ่นยาว ... เพื่อนร่วมงานยืนยันในวันนี้หลังจากเห็นการใช้งานของฉันwhile (1)ในสคริปต์ Perl ที่for (;;)เร็วขึ้น ฉันแย้งว่าพวกเขาควรจะเหมือนกันโดยหวังว่าล่ามจะปรับความแตกต่างให้เหมาะสม ฉันตั้งค่าสคริปต์ที่จะเรียกใช้ 1,000,000,000 สำหรับการวนซ้ำวนซ้ำและในขณะเดียวกันก็วนซ้ำและบันทึกเวลาระหว่างกัน ฉันไม่พบความแตกต่างที่เห็นคุณค่า เพื่อนร่วมงานของฉันบอกว่าศาสตราจารย์คนหนึ่งบอกเขาว่าการwhile (1)เปรียบเทียบกำลังดำเนินการอยู่1 == 1และfor (;;)ไม่ใช่ เราทำการทดสอบซ้ำกับ 100x จำนวนการวนซ้ำด้วย C ++ และความแตกต่างนั้นเล็กน้อย อย่างไรก็ตามเป็นตัวอย่างที่แสดงให้เห็นว่าโค้ดที่คอมไพล์ได้เร็วขึ้นสามารถเทียบกับภาษาสคริปต์ได้ เวอร์ชั่นสั้น... มีเหตุผลใดที่จะชอบwhile (1)มากกว่าfor (;;)ถ้าคุณต้องการวงวนไม่สิ้นสุดเพื่อแยกออกจากกัน? หมายเหตุ:หากยังไม่ชัดเจนจากคำถาม นี่เป็นการสนทนาทางวิชาการที่สนุกสนานระหว่างเพื่อนสองคน ฉันรู้ว่านี่ไม่ใช่แนวคิดที่สำคัญอย่างยิ่งที่โปรแกรมเมอร์ทุกคนควรทนทุกข์ทรมาน ขอบคุณสำหรับคำตอบที่ดีทั้งหมดที่ฉัน (และฉันแน่ใจว่าคนอื่น ๆ ) ได้เรียนรู้เล็ก ๆ น้อย ๆ จากการสนทนานี้ ปรับปรุง:เพื่อนร่วมงานดังกล่าวชั่งน้ำหนักด้วยคำตอบด้านล่าง อ้างถึงที่นี่ในกรณีที่ถูกฝังอยู่ มันมาจากโปรแกรมเมอร์แอสเซมบลีของ AMD เขาระบุว่าโปรแกรมเมอร์ C (ผู้ประพันธ์) ไม่ทราบว่ารหัสของพวกเขาไม่มีประสิทธิภาพ เขากล่าวในวันนี้ว่าคอมไพเลอร์ gcc …

13
ข้อดีและข้อเสียของการคำนวณใน SQL และแอปพลิเคชันของคุณคืออะไร
shopkeeper ตารางมีฟิลด์ต่อไปนี้: id (bigint),amount (numeric(19,2)),createddate (timestamp) สมมุติว่าฉันมีตารางด้านบน ฉันต้องการรับบันทึกเมื่อวานและสร้างรายงานโดยพิมพ์จำนวนเงินเป็นเซนต์ วิธีหนึ่งในการทำคือการคำนวณในแอปพลิเคชัน java ของฉันและดำเนินการแบบสอบถามง่าย ๆ Date previousDate ;// $1 calculate in application Date todayDate;// $2 calculate in application select amount where createddate between $1 and $2 จากนั้นวนรอบบันทึกและแปลงจำนวนเงินเป็นเซ็นต์ในแอปพลิเคชัน java ของฉันและสร้างรายงาน อีกวิธีหนึ่งก็เหมือนกับการคำนวณในแบบสอบถามของ sql: select cast(amount * 100 as int) as "Cents" from shopkeeper where createddate …

4
ทำไมอาร์เรย์ของ Python จึงช้า
ฉันคาดว่าarray.arrayจะเร็วกว่ารายการเนื่องจากอาร์เรย์ดูเหมือนจะไม่มีกล่อง อย่างไรก็ตามฉันได้รับผลลัพธ์ต่อไปนี้: In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]: %timeit sum(L) 1 loop, best of 3: 667 ms per loop In [5]: %timeit sum(A) 1 loop, best of 3: 1.41 s per loop In [6]: %timeit sum(L) 1 loop, best …

10
Android - ฉันจะตรวจสอบ ANR ได้อย่างไร
มีวิธีหาที่แอปของฉันโยน ANR (แอปพลิเคชันไม่ตอบกลับ) หรือไม่ ฉันดูที่ไฟล์ traces.txt ใน / data และฉันเห็นร่องรอยสำหรับแอปพลิเคชันของฉัน นี่คือสิ่งที่ฉันเห็นในร่องรอย DALVIK THREADS: "main" prio=5 tid=3 TIMED_WAIT | group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8 | sysTid=691 nice=0 sched=0/0 handle=-1091117924 at java.lang.Object.wait(Native Method) - waiting on <0x1cd570> (a android.os.MessageQueue) at java.lang.Object.wait(Object.java:195) at android.os.MessageQueue.next(MessageQueue.java:144) at android.os.Looper.loop(Looper.java:110) at android.app.ActivityThread.main(ActivityThread.java:3742) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) …

9
เวลาในการตอบสนองที่ดีสำหรับเว็บแอปพลิเคชั่นที่ปรับเปลี่ยนเป็นแบบส่วนตัวคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา สำหรับเว็บแอปพลิเคชันที่ซับซ้อนที่มีเนื้อหาแบบไดนามิกและการตั้งค่าส่วนบุคคลเวลาตอบสนองที่ดีจากเซิร์ฟเวอร์คือเท่าใด (ไม่รวมเวลาแฝงของเครือข่ายและเวลาในการแสดงผลเบราว์เซอร์) ฉันกำลังคิดเกี่ยวกับเว็บไซต์เช่น Facebook, Amazon, MyYahoo เป็นต้นคำถามที่เกี่ยวข้องคือเวลาตอบสนองที่ดีสำหรับบริการแบ็คเอนด์คืออะไร

11
RTTI แพงแค่ไหน?
ฉันเข้าใจว่ามีทรัพยากรที่ได้รับผลกระทบจากการใช้ RTTI แต่มันมีขนาดใหญ่เพียงใด ทุกที่ที่ฉันดูก็บอกว่า "RTTI มีราคาแพง" แต่ไม่มีพวกเขาจริง ๆ ที่ให้มาตรฐานหรือข้อมูลเชิงปริมาณเกี่ยวกับหน่วยความจำเวลาประมวลผลหรือความเร็ว ดังนั้น RTTI แพงแค่ไหน? ฉันอาจใช้กับระบบสมองกลฝังตัวที่ฉันมี RAM เพียง 4MB ดังนั้นทุกบิตจึงนับ แก้ไข: ตามคำตอบของ S. Lottมันจะดีกว่าถ้าฉันรวมสิ่งที่ฉันกำลังทำอยู่ ฉันใช้คลาสเพื่อส่งผ่านข้อมูลที่มีความยาวต่างกันและสามารถดำเนินการต่างๆ ได้ดังนั้นจึงเป็นการยากที่จะทำได้โดยใช้ฟังก์ชันเสมือนเท่านั้น ดูเหมือนว่าใช้ไม่กี่dynamic_castสามารถแก้ไขปัญหานี้ได้โดยอนุญาตให้คลาสที่ได้รับแตกต่างกันถูกส่งผ่านระดับที่แตกต่างกัน จากความเข้าใจของฉันdynamic_castใช้ RTTI ดังนั้นฉันสงสัยว่ามันจะเป็นไปได้อย่างไรที่จะใช้ในระบบที่ จำกัด
152 c++  performance  rtti 

19
ประสิทธิภาพของไลบรารีคณิตศาสตร์ Java matrix หรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เรากำลังคำนวณอะไรบางอย่างที่ runtime ถูกผูกมัดโดยการดำเนินการเมทริกซ์ (รายละเอียดบางอย่างด้านล่างหากสนใจ) ประสบการณ์นี้ทำให้เกิดคำถามต่อไปนี้: ชาวบ้านมีประสบการณ์กับการทำงานของห้องสมุด Java สำหรับคณิตศาสตร์เมทริกซ์ (เช่นทวีคูณผกผัน ฯลฯ ) หรือไม่? ตัวอย่างเช่น: JAMA COLT Apache ทั่วไปคณิตศาสตร์ ฉันค้นหาและพบว่าไม่มีอะไร รายละเอียดการเปรียบเทียบความเร็วของเรา: เราใช้ Intel FORTRAN (ifort (IFORT) 10.1 20070913) เราได้นำมาใช้ใหม่ใน Java (1.6) โดยใช้ Apache commons math 1.2 matrix ops และยอมรับความถูกต้องของตัวเลขทั้งหมด (เรามีเหตุผลที่ต้องการเป็นภาษาจาวา) (Java doubles, Fortran real …
151 java  math  matrix  performance 

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

2
มัลติโพรเซสซิง - ไปป์เทียบกับคิว
อะไรคือความแตกต่างพื้นฐานระหว่างการรอคิวและท่อในแพคเกจ multiprocessing งูใหญ่ ? ในสถานการณ์ใดควรเลือกหนึ่งในอีกสถานการณ์หนึ่ง จะใช้Pipe()เมื่อไร? จะใช้Queue()เมื่อไร?

1
เร็วกว่า bit-shift สองเท่าสำหรับ Python 3.x จำนวนเต็ม?
ฉันดูที่แหล่งที่มาของsort_containersและรู้สึกประหลาดใจที่เห็นบรรทัดนี้ : self._load, self._twice, self._half = load, load * 2, load >> 1 นี่loadคือจำนวนเต็ม เหตุใดจึงใช้การเลื่อนบิตในที่เดียวและการคูณในที่อื่น ดูเหมือนว่าเหตุผลที่การเลื่อนบิตอาจเร็วกว่าการหารหนึ่งด้วย 2 แต่ทำไมไม่เปลี่ยนการคูณด้วยการเลื่อนด้วย? ฉันเปรียบเทียบกรณีต่อไปนี้: (คูณหาร) (กะกะ) (ครั้งกะ) (กะหาร) และพบว่า # 3 นั้นเร็วกว่าตัวเลือกอื่น ๆ เสมอ: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x …

10
วิธีที่เร็วที่สุดในการแทนที่ NAs ใน data.table ขนาดใหญ่
ฉันมีdata.tableขนาดใหญ่โดยมีค่าที่หายไปจำนวนมากกระจายอยู่ทั่วแถว ~ 200k และ 200 คอลัมน์ ฉันต้องการโค้ดค่า NA เหล่านั้นให้เป็นศูนย์อีกครั้งอย่างมีประสิทธิภาพที่สุด ฉันเห็นสองตัวเลือก: 1: แปลงเป็น data.frame และใช้บางสิ่งเช่นนี้ 2: คำสั่งการตั้งค่าย่อย data.table บางประเภท ฉันจะมีความสุขกับการแก้ปัญหาอย่างมีประสิทธิภาพของประเภท 1 การแปลง data.frame แล้วกลับไปที่ data.table จะไม่ใช้เวลานานเกินไป

9
Foreign Key ปรับปรุงประสิทธิภาพการค้นหาหรือไม่
สมมติว่าฉันมี 2 ตารางผลิตภัณฑ์และหมวดหมู่สินค้า ทั้งสองตารางมีความสัมพันธ์กับ CategoryId และนี่คือแบบสอบถาม SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; เมื่อฉันสร้างแผนการดำเนินการ ProductCategories ตารางทำการค้นหาดัชนีคลัสเตอร์ซึ่งเป็นไปตามที่คาดหวัง แต่สำหรับผลิตภัณฑ์ในตารางจะทำการสแกนดัชนีคลัสเตอร์ซึ่งทำให้ฉันสงสัย เหตุใด FK จึงไม่ช่วยปรับปรุงประสิทธิภาพการสืบค้น ดังนั้นฉันต้องสร้างดัชนีบน Products.CategoryId เมื่อฉันสร้างแผนการดำเนินการอีกครั้งทั้งสองตารางทำการค้นหาดัชนี และค่าใช้จ่ายทรีย่อยโดยประมาณจะลดลงมาก คำถามของฉันคือ: นอกจาก FK จะช่วยจำกัดความสัมพันธ์แล้วยังมีประโยชน์อื่นอีกไหม? ปรับปรุงประสิทธิภาพการสืบค้นหรือไม่ ฉันควรสร้างดัชนีในคอลัมน์ FK ทั้งหมด (ไลค์ผลิตภัณฑ์ Products.CategoryId) ในตารางทั้งหมดหรือไม่

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