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

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

19
การนับ DISTINCT บนหลายคอลัมน์
มีวิธีที่ดีกว่าในการทำแบบสอบถามเช่นนี้: SELECT COUNT(*) FROM (SELECT DISTINCT DocumentId, DocumentSessionId FROM DocumentOutputItems) AS internalQuery ฉันต้องนับจำนวนรายการที่แตกต่างจากตารางนี้ แต่ความแตกต่างอยู่เหนือสองคอลัมน์ แบบสอบถามของฉันทำงานได้ดี แต่ฉันสงสัยว่าฉันจะได้ผลลัพธ์สุดท้ายโดยใช้เพียงแบบสอบถามเดียว (โดยไม่ใช้แบบสอบถามย่อย)

22
std :: vector ช้ากว่าอาเรย์ธรรมดามากหรือไม่?
ฉันมักจะคิดว่ามันเป็นภูมิปัญญาทั่วไปที่std::vector"นำไปใช้เป็นอาร์เรย์" blah blah blah วันนี้ฉันลงไปทดสอบและดูเหมือนว่าจะไม่เป็นเช่นนั้น: นี่คือผลการทดสอบบางส่วน: UseArray completed in 2.619 seconds UseVector completed in 9.284 seconds UseVectorPushBack completed in 14.669 seconds The whole thing completed in 26.591 seconds นั่นคือช้าลงประมาณ 3 - 4 เท่า! ไม่ปรับให้เหมาะสมกับความคิดเห็นที่ " vectorอาจช้ากว่าสำหรับ nanosecs สักสองสาม" และรหัสที่ฉันใช้: #include <cstdlib> #include <vector> #include <iostream> #include <string> #include <boost/date_time/posix_time/ptime.hpp> #include …
212 c++  arrays  performance  stl  vector 

13
. NET มีค่าใช้จ่ายเท่าใด
ฉันได้ยินอยู่เสมอว่าการสะท้อนที่ไม่ดีนั้นถูกใช้อย่างไร ในขณะที่ฉันมักจะหลีกเลี่ยงการไตร่ตรองและไม่ค่อยพบสถานการณ์ที่เป็นไปไม่ได้ที่จะแก้ปัญหาของฉันหากไม่มีมันฉันก็สงสัยว่า ... สำหรับผู้ที่เคยใช้การไตร่ตรองในแอพพลิเคชั่นคุณได้วัดผลการทำงานที่ได้รับและมันแย่มากจริง ๆ เหรอ?


8
ข้อดีของการใช้เมธอดแบบสแตติกส่วนตัว
เมื่อสร้างคลาสที่มีเมธอดส่วนตัวภายในโดยทั่วไปเพื่อลดการทำซ้ำโค้ดซึ่งไม่ต้องการใช้ฟิลด์อินสแตนซ์ใด ๆ จะมีข้อดีด้านประสิทธิภาพหรือหน่วยความจำเพื่อประกาศวิธีการเป็นแบบสแตติกหรือไม่ ตัวอย่าง: foreach (XmlElement element in xmlDoc.DocumentElement.SelectNodes("sample")) { string first = GetInnerXml(element, ".//first"); string second = GetInnerXml(element, ".//second"); string third = GetInnerXml(element, ".//third"); } ... private static string GetInnerXml(XmlElement element, string nodeName) { return GetInnerXml(element, nodeName, null); } private static string GetInnerXml(XmlElement element, string nodeName, string defaultValue) { …
209 c#  performance 

30
เหตุใด C จึงเร็วและทำไมภาษาอื่นไม่เร็วหรือเร็วกว่า [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ในการฟังพอดคาสต์ StackOverflow การกระทุ้งทำให้เกิดขึ้นว่า "โปรแกรมเมอร์จริง" เขียนใน C และ C เร็วขึ้นเพราะมัน "ใกล้กับเครื่อง" ออกจากการยืนยันเดิมสำหรับโพสต์อื่นอะไรเป็นพิเศษเกี่ยวกับ C ที่ช่วยให้มันเร็วกว่าภาษาอื่น ๆ ? หรือใช้วิธีอื่น: อะไรจะหยุดภาษาอื่นไม่ให้สามารถคอมไพล์ลงไปสู่ไบนารี่ที่ทำงานได้เร็วเท่ากับ C?
208 c  performance 

4
วิธีที่เร็วที่สุดในการลบอักขระตัวแรกใน String
สมมติว่าเรามีสตริงต่อไปนี้ string data= "/temp string"; หากเราต้องการลบตัวอักษรตัวแรก/เราสามารถทำได้หลายวิธีเช่น: data.Remove(0,1); data.TrimStart('/'); data.Substring(1); แต่จริงๆฉันไม่รู้ว่าอันไหนมีอัลกอริธึมที่ดีที่สุดและทำได้เร็วขึ้น .. มีอันไหนที่ดีที่สุดหรือเหมือนกันทั้งหมด

6
รายการของสตริงหนึ่งสตริง
ให้บอกว่าคุณมี: List<string> los = new List<string>(); ในโลกแห่งการทำงานที่บ้าคลั่งนี้เราอาศัยอยู่ในยุคนี้ซึ่งหนึ่งในนั้นจะดีที่สุดสำหรับการสร้างสตริงหนึ่งโดยเชื่อมต่อสิ่งเหล่านี้: String.Join(String.Empty, los.ToArray()); StringBuilder builder = new StringBuilder(); los.ForEach(s => builder.Append(s)); string disp = los.Aggregate<string>((a, b) => a + b); หรือ StringBuilder เก่าแบบธรรมดา foreach หรือมีวิธีที่ดีกว่า

2
C ++ ที่ทันสมัยช่วยเพิ่มประสิทธิภาพให้คุณได้ฟรีหรือไม่?
บางครั้งมีการอ้างว่า C ++ 11/14 สามารถเพิ่มประสิทธิภาพให้คุณได้แม้เพียงแค่รวบรวมรหัส C ++ 98 การให้เหตุผลมักตามแนวความหมายของการย้ายเนื่องจากในบางกรณีตัวสร้าง rvalue จะถูกสร้างขึ้นโดยอัตโนมัติหรือตอนนี้เป็นส่วนหนึ่งของ STL ตอนนี้ฉันสงสัยว่าก่อนหน้านี้กรณีเหล่านี้ได้รับการจัดการโดย RVO หรือการเพิ่มประสิทธิภาพคอมไพเลอร์ที่คล้ายกันแล้ว คำถามของฉันคือถ้าคุณสามารถให้ตัวอย่างจริงของรหัส C ++ 98 ที่ไม่มีการดัดแปลงให้ทำงานได้เร็วขึ้นโดยใช้คอมไพเลอร์ที่สนับสนุนคุณสมบัติภาษาใหม่ ฉันเข้าใจว่าคอมไพเลอร์ที่ได้มาตรฐานไม่จำเป็นต้องทำการคัดลอกและโดยเหตุผลความหมายของการย้ายอาจทำให้เกิดความเร็ว แต่ฉันต้องการเห็นกรณีทางพยาธิวิทยาน้อยลงถ้าคุณต้องการ แก้ไข: เพื่อให้ชัดเจนฉันไม่ได้ถามว่าคอมไพเลอร์ใหม่นั้นเร็วกว่าคอมไพเลอร์เก่าหรือไม่ แต่ถ้ามีโค้ดที่เพิ่ม -std = c ++ 14 ให้คอมไพเลอร์ของฉันมันจะทำงานเร็วขึ้น (หลีกเลี่ยงการทำสำเนา แต่ถ้าคุณ สามารถเกิดขึ้นกับสิ่งอื่นนอกเหนือจากความหมายย้ายฉันก็มีความสนใจเช่นกัน)

7
เหตุใดจึงต้องใช้ AJAX เมื่อ WebSockets พร้อมใช้งาน
ฉันใช้ WebSockets มาระยะหนึ่งแล้วฉันได้เลือกที่จะสร้างเครื่องมือการจัดการโครงการ Agile สำหรับโครงการปีสุดท้ายของฉันที่ University โดยใช้เซิร์ฟเวอร์ Node และ WebSockets ฉันพบว่าการใช้ WebSockets มีจำนวนคำขอเพิ่มขึ้น 624% ต่อวินาทีที่แอปพลิเคชันของฉันสามารถดำเนินการได้ อย่างไรก็ตามตั้งแต่เริ่มโครงการฉันได้อ่านช่องโหว่ความปลอดภัยและเบราว์เซอร์บางตัวเลือกที่จะปิดการใช้งาน WebSockets โดยค่าเริ่มต้น .. นี่ทำให้ฉันมีคำถาม: เหตุใดจึงต้องใช้ AJAX เมื่อ WebSockets ดูเหมือนว่าจะทำงานที่ยอดเยี่ยมในการลดความหน่วงแฝงและค่าใช้จ่ายทรัพยากรมีอะไรที่ AJAX ทำได้ดีกว่า WebSockets หรือไม่

2
ปรับ PostgreSQL ให้เหมาะสมเพื่อการทดสอบที่รวดเร็ว
ฉันเปลี่ยนมาใช้ PostgreSQL จาก SQLite สำหรับแอปพลิเคชั่น Rails ทั่วไป ปัญหาคือรายละเอียดการรันช้าลงเมื่อใช้ PG บน SQLite จะเอา ~ 34 วินาทีบน PG มัน ~ 76 วินาทีซึ่งเป็นมากกว่า 2x ช้าลง ดังนั้นตอนนี้ฉันต้องการใช้เทคนิคบางอย่างเพื่อทำให้ประสิทธิภาพของ specs เทียบกับ SQLiteโดยไม่มีการแก้ไขโค้ด (โดยเฉพาะการตั้งค่าตัวเลือกการเชื่อมต่อซึ่งอาจเป็นไปไม่ได้) สิ่งที่ชัดเจนจากหัวของฉันคือ: RAM Disk (การตั้งค่าที่ดีกับ RSpec บน OSX จะดีสำหรับการดู) ตารางที่ไม่ถูกบล็อก (สามารถนำไปใช้กับฐานข้อมูลทั้งหมดได้หรือไม่ดังนั้นฉันจึงไม่ได้เปลี่ยนสคริปต์ทั้งหมด) อย่างที่คุณอาจจะเข้าใจว่าฉันไม่สนใจเกี่ยวกับความน่าเชื่อถือและส่วนที่เหลือ (DB เป็นเพียงการทิ้งสิ่งที่นี่) ฉันต้องการที่จะได้รับส่วนใหญ่ของ PG และทำให้มันเป็นไปอย่างรวดเร็วในขณะที่มันอาจจะสามารถ คำตอบที่ดีที่สุดจะอธิบายถึงเทคนิคในการทำเช่นนั้นการตั้งค่าและข้อเสียของเทคนิคเหล่านั้น อัปเดต: fsync = off + full_page_writes …

9
ฉันจะเร่งความเร็ว gwt คอมไพเลอร์ได้อย่างไร
เราเริ่มใช้ GWT หนักกว่าในโครงการของเราและประสิทธิภาพของคอมไพเลอร์ GWT เริ่มน่ารำคาญมากขึ้นเรื่อย ๆ เรากำลังจะเริ่มปรับเปลี่ยนวิธีการทำงานของเราเพื่อลดปัญหารวมถึงการเน้นที่เบราว์เซอร์โหมดโฮสต์ซึ่งยิ่งเพิ่มความจำเป็นในการเรียกใช้คอมไพเลอร์ GWT จนกระทั่งในเวลาต่อมา แต่นำความเสี่ยงของตัวเองโดยเฉพาะ ไม่จับปัญหากับเบราว์เซอร์ที่แท้จริงจนกว่าจะช้ากว่าที่เราต้องการ ตามหลักการแล้วเราต้องการทำให้ GWT คอมไพเลอร์ตัวเองเร็วขึ้น - นาทีในการรวบรวมแอปพลิเคชั่นที่ค่อนข้างเล็กคือการถ่ายปัสสาวะ อย่างไรก็ตามเรากำลังใช้การคอมไพล์ถ้าเป็นแฟชั่นที่ไร้เดียงสาดังนั้นฉันหวังว่าเราจะได้รับผลตอบแทนที่รวดเร็วและง่ายดาย ขณะนี้เรากำลังเรียกใช้ com.google.gwt.dev.Compiler เป็นแอปพลิเคชัน java จากเป้าหมาย Ant Ant โดยมีฮีปสูงสุด 256m และพื้นที่สแต็กจำนวนมาก คอมไพเลอร์เปิดตัวโดย Ant ใช้ fork = true และ Java 6 JRE ล่าสุดเพื่อลองและใช้ประโยชน์จากประสิทธิภาพที่เพิ่มขึ้นของ Java6 เราส่งคลาสคอนโทรลเลอร์หลักของเราไปยังคอมไพเลอร์พร้อมกับคลาสแอพพลิเคชั่นและปิดมันไป เราจะทำอะไรได้บ้างเพื่อให้ได้ความเร็วเพิ่มขึ้นบ้าง? เราสามารถให้ข้อมูลเพิ่มเติมเพื่อใช้เวลาน้อยลงในการค้นพบสิ่งที่ต้องทำ ฉันรู้ว่าเราสามารถบอกให้รวบรวมเฉพาะเบราว์เซอร์เดียว แต่เราต้องทำการทดสอบหลายเบราว์เซอร์ดังนั้นจึงไม่เป็นประโยชน์จริง ๆ คำแนะนำทั้งหมดยินดีต้อนรับ ณ จุดนี้
201 java  performance  gwt 

4
มาตรฐาน C ++ มีประสิทธิภาพต่ำสำหรับ iostreams หรือฉันแค่จัดการกับการนำไปใช้ที่ไม่ดี?
ทุกครั้งที่ฉันพูดถึงประสิทธิภาพที่ช้าของ C ++ ไลบรารีมาตรฐาน iostreams ฉันจะได้พบกับคลื่นแห่งความไม่เชื่อ แต่ฉันมีผลลัพธ์ของ profiler ที่แสดงเวลาจำนวนมากที่ใช้ในโค้ดไลบรารี iostream (การปรับให้เหมาะสมเต็มที่ของคอมไพเลอร์), และการสลับจาก iostreams ไปเป็น I / O API เฉพาะระบบปฏิบัติการและการจัดการบัฟเฟอร์แบบกำหนดเอง สิ่งที่เป็นงานพิเศษคือห้องสมุดมาตรฐาน C ++ ทำมันเป็นสิ่งจำเป็นโดยมาตรฐานและเป็นประโยชน์ในการปฏิบัติ? หรือคอมไพเลอร์บางตัวมีการใช้งาน iostreams ที่สามารถแข่งขันกับการจัดการบัฟเฟอร์ด้วยตนเองได้หรือไม่? มาตรฐาน เพื่อให้เรื่องต่าง ๆ มีความเคลื่อนไหวฉันได้เขียนโปรแกรมสั้น ๆ สองข้อเพื่อออกกำลังกายการบัฟเฟอร์ภายใน iostreams: วางข้อมูลไบนารีลงในostringstream http://ideone.com/2PPYw ใส่ข้อมูลไบนารีลงในchar[]บัฟเฟอร์http://ideone.com/Ni5ct วางข้อมูลไบนารีลงในhttp://ideone.com/Mj2Fi ที่vector<char>ใช้back_inserter ใหม่ : ตัวvector<char>วนซ้ำอย่างง่ายhttp://ideone.com/9iitv ใหม่ : ใส่ข้อมูลไบนารีโดยตรงในstringbuf http://ideone.com/qc9QA ใหม่ : ตัวvector<char>วนซ้ำแบบง่ายพร้อมการตรวจสอบขอบเขตhttp://ideone.com/YyrKy โปรดทราบว่าostringstreamและstringbufรุ่นต่างๆจะทำงานซ้ำน้อยลงเพราะมันช้ากว่ามาก เมื่อวันที่ …

6
เบราว์เซอร์ใดที่รองรับ <script async =“ async” />
เมื่อวันที่ 1 ธันวาคม 2009 Google ประกาศการสนับสนุนสำหรับตรงกันติดตามของ Google Analytics การติดตามแบบอะซิงโครนัสทำได้โดยใช้คำสั่ง async สำหรับ&lt;script&gt;แท็ก เบราว์เซอร์ใดที่สนับสนุนคำสั่ง async ( &lt;script async="async" /&gt;) และตั้งแต่เวอร์ชันใด

5
การใช้ varchar (MAX) กับ TEXT บน SQL Server
ฉันเพิ่งอ่านว่าVARCHAR(MAX)ประเภทข้อมูล (ซึ่งสามารถเก็บได้ใกล้เคียงกับ 2GB ของข้อมูลถ่าน) คือการแทนที่ที่แนะนำสำหรับTEXTประเภทข้อมูลใน SQL Server 2005 และรุ่นถัดไปของ SQL Server หากฉันต้องการค้นหาสตริงใด ๆ ในคอลัมน์การดำเนินการใดที่เร็วกว่า ใช้ส่วนLIKEคำสั่งกับVARCHAR(MAX)คอลัมน์หรือไม่ WHERE COL1 LIKE '%search string%' ใช้TEXTคอลัมน์และใส่ดัชนีข้อความ / แคตตาล็อกแบบเต็มในคอลัมน์นี้แล้วค้นหาโดยใช้CONTAINSข้อ? WHERE CONTAINS (Col1, 'MyToken')

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