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

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

6
เหตุใด SSE สเกลาร์ sqrt (x) จึงช้ากว่า rsqrt (x) * x
ฉันได้จัดทำโปรไฟล์หลักคณิตศาสตร์ของเราใน Intel Core Duo และในขณะที่ดูวิธีการต่างๆของสแควร์รูทฉันสังเกตเห็นว่ามีอะไรแปลก ๆ : การใช้การดำเนินการสเกลาร์ SSE การใช้สแควร์รูทซึ่งกันและกันเร็วกว่าและคูณ เพื่อรับ sqrt มากกว่าที่จะใช้ opcode sqrt ดั้งเดิม! ฉันกำลังทดสอบด้วยการวนซ้ำเช่น: inline float TestSqrtFunction( float in ); void TestFunc() { #define ARRAYSIZE 4096 #define NUMITERS 16386 float flIn[ ARRAYSIZE ]; // filled with random numbers ( 0 .. 2^22 ) float flOut [ ARRAYSIZE …

9
ล้างแคชไฟล์เพื่อทดสอบประสิทธิภาพซ้ำ
ฉันสามารถใช้เครื่องมือหรือเทคนิคใดในการลบเนื้อหาไฟล์ที่แคชเพื่อป้องกันไม่ให้ผลการทำงานของฉันบิดเบี้ยว ฉันเชื่อว่าฉันจำเป็นต้องล้างข้อมูลทั้งหมดหรือเลือกลบข้อมูลแคชเกี่ยวกับไฟล์และเนื้อหาไดเรกทอรี แอปพลิเคชั่นที่ฉันกำลังพัฒนาเป็นยูทิลิตี้การบีบอัดแบบพิเศษและคาดว่าจะทำงานอ่านและเขียนไฟล์จำนวนมากที่ระบบปฏิบัติการไม่ได้สัมผัสเมื่อเร็ว ๆ นี้และบล็อกดิสก์ที่ไม่น่าจะถูกแคช ฉันต้องการลบความแปรปรวนที่ฉันเห็นในเวลา IO เมื่อฉันทำซ้ำภารกิจในการจัดทำโปรไฟล์กลยุทธ์ต่างๆสำหรับการประมวลผลไฟล์ ฉันสนใจโซลูชันสำหรับ Windows XP เป็นหลักเนื่องจากเป็นเครื่องพัฒนาหลักของฉัน แต่ฉันสามารถทดสอบโดยใช้ linux ได้เช่นกันและฉันก็สนใจคำตอบสำหรับสภาพแวดล้อมนั้นเช่นกัน ฉันลอง SysInternals CacheSetแล้ว แต่การคลิก "ล้าง" ไม่ได้ส่งผลให้เพิ่มขึ้นที่วัดได้ (การคืนค่าตามเวลาหลังจากการบูตเย็น) ในช่วงเวลาที่จะอ่านไฟล์ซ้ำที่ฉันเพิ่งอ่านไม่กี่ครั้ง

5
เหตุใดแอป Heroku พื้นฐานของฉันจึงใช้เวลาโหลดสองวินาที
ฉันสร้างแอป Heroku ที่เรียบง่ายสองแอปเพื่อทดสอบบริการ แต่มักใช้เวลาหลายวินาทีในการโหลดหน้านี้เมื่อฉันเยี่ยมชมครั้งแรก: Cropify - แอป Sinatra พื้นฐาน ( บน github ) Textile2HTML - แอป Sinatra พื้นฐานยิ่งขึ้น ( บน github ) สิ่งที่ฉันทำคือสร้างแอป Sinatra ง่ายๆและใช้งานได้ ฉันไม่ได้ทำอะไรที่วุ่นวายหรือทดสอบเซิร์ฟเวอร์ Heroku ฉันจะปรับปรุงเวลาตอบสนองได้อย่างไร ตอนนี้ช้ามากและฉันไม่แน่ใจว่าจะเริ่มจากตรงไหน รหัสสำหรับโครงการอยู่บน github หากช่วยได้
106 ruby  performance  heroku 

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

5
Java Casting แนะนำค่าใช้จ่ายหรือไม่? ทำไม?
มีค่าใช้จ่ายหรือไม่เมื่อเราโยนวัตถุประเภทหนึ่งไปยังอีกประเภทหนึ่ง? หรือคอมไพเลอร์เพียงแก้ไขทุกอย่างและไม่มีค่าใช้จ่ายในขณะทำงาน? นี่เป็นเรื่องทั่วไปหรือมีหลายกรณี? ตัวอย่างเช่นสมมติว่าเรามีอาร์เรย์ของ Object [] โดยที่แต่ละองค์ประกอบอาจมีประเภทที่แตกต่างกัน แต่เรารู้แน่นอนอยู่แล้วว่าองค์ประกอบ 0 เป็นสองเท่าองค์ประกอบ 1 คือสตริง (ฉันรู้ว่านี่เป็นการออกแบบที่ผิด แต่สมมติว่าฉันต้องทำสิ่งนี้) ข้อมูลประเภทของ Java ยังคงถูกเก็บไว้ตลอดเวลาหรือไม่ หรือทุกอย่างถูกลืมไปหลังจากการคอมไพล์แล้วและถ้าเราทำ (Double) องค์ประกอบ [0] เราก็จะทำตามตัวชี้และแปลความหมายของ 8 ไบต์นั้นเป็นสองเท่าคืออะไร? ฉันไม่ชัดเจนมากเกี่ยวกับวิธีการสร้างประเภทใน Java หากคุณมีคำแนะนำใหม่เกี่ยวกับหนังสือหรือบทความก็ขอบคุณเช่นกัน

7
C # เรียงลำดับและเรียงลำดับโดยเปรียบเทียบ
ฉันสามารถจัดเรียงรายการโดยใช้ Sort หรือ OrderBy อันไหนเร็วกว่ากัน? ทั้งสองทำงานบนอัลกอริทึมเดียวกันหรือไม่ List<Person> persons = new List<Person>(); persons.Add(new Person("P005", "Janson")); persons.Add(new Person("P002", "Aravind")); persons.Add(new Person("P007", "Kazhal")); 1. persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true)); 2. var query = persons.OrderBy(n => n.Name, new NameComparer()); class NameComparer : IComparer<string> { public int Compare(string x,string y) { return string.Compare(x, y, true); } }

4
ประสิทธิภาพของ Objects / Arrays ใน JavaScript เป็นอย่างไร? (เฉพาะสำหรับ Google V8)
ประสิทธิภาพที่เกี่ยวข้องกับ Arrays และ Objects ใน JavaScript (โดยเฉพาะ Google V8) น่าสนใจมากสำหรับเอกสาร ฉันไม่พบบทความที่ครอบคลุมเกี่ยวกับหัวข้อนี้ที่ใดก็ได้บนอินเทอร์เน็ต ฉันเข้าใจว่าออบเจ็กต์บางตัวใช้คลาสเป็นโครงสร้างข้อมูลพื้นฐาน หากมีคุณสมบัติจำนวนมากบางครั้งถือว่าเป็นตารางแฮช? ฉันเข้าใจด้วยว่าบางครั้ง Arrays จะถือว่าเหมือนกับอาร์เรย์ C ++ (เช่นการจัดทำดัชนีแบบสุ่มอย่างรวดเร็วการลบและการปรับขนาดอย่างช้าๆ) และในบางครั้งพวกมันจะได้รับการปฏิบัติเหมือน Objects มากขึ้น (การจัดทำดัชนีที่รวดเร็วการแทรก / ลบอย่างรวดเร็วหน่วยความจำที่มากขึ้น) และบางครั้งอาจถูกจัดเก็บเป็นรายการที่เชื่อมโยง (เช่นการจัดทำดัชนีแบบสุ่มช้าการลบ / การแทรกอย่างรวดเร็วที่จุดเริ่มต้น / จุดสิ้นสุด) ประสิทธิภาพที่แม่นยำของการดึงข้อมูล Array / Object และการปรับแต่งใน JavaScript คืออะไร? (เฉพาะสำหรับ Google V8) โดยเฉพาะอย่างยิ่งผลกระทบด้านประสิทธิภาพของ: การเพิ่มคุณสมบัติให้กับวัตถุ การลบคุณสมบัติออกจากวัตถุ การสร้างดัชนีคุณสมบัติในวัตถุ การเพิ่มรายการใน Array การลบรายการออกจาก Array การสร้างดัชนีรายการใน …

9
ความแตกต่างของประสิทธิภาพสำหรับโครงสร้างควบคุม 'สำหรับ' และ 'foreach' ใน C #
ข้อมูลโค้ดใดจะให้ประสิทธิภาพดีกว่ากัน ส่วนโค้ดด้านล่างเขียนด้วย C # 1. for(int counter=0; counter<list.Count; counter++) { list[counter].DoSomething(); } 2. foreach(MyType current in list) { current.DoSomething(); }

2
arrayfun อาจช้ากว่าการวนซ้ำอย่างชัดเจนใน matlab ทำไม?
พิจารณาการทดสอบความเร็วอย่างง่ายต่อไปนี้สำหรับarrayfun: T = 4000; N = 500; x = randn(T, N); Func1 = @(a) (3*a^2 + 2*a - 1); tic Soln1 = ones(T, N); for t = 1:T for n = 1:N Soln1(t, n) = Func1(x(t, n)); end end toc tic Soln2 = arrayfun(Func1, x); toc บนเครื่องของฉัน (Matlab 2011b บน …

3
Timertask หรือ Handler
สมมติว่าฉันต้องการดำเนินการบางอย่างทุกๆ 10 วินาทีและไม่จำเป็นต้องอัปเดตมุมมอง คำถามคือจะดีกว่าไหม (ฉันหมายถึงมีประสิทธิภาพและประสิทธิผลมากกว่า) ในการใช้ตัวจับเวลากับ timertask ดังนี้: final Handler handler = new Handler(); TimerTask timertask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { <some task> } }); } }; timer = new Timer(); timer.schedule(timertask, 0, 15000); } หรือเป็นเพียงตัวจัดการที่มีการล่าช้าภายหลัง final Handler handler …

8
รับดัชนีขององค์ประกอบอาร์เรย์เร็วกว่า O (n)
เนื่องจากฉันมีอาร์เรย์ขนาดใหญ่และมีค่าจากมัน ฉันต้องการรับดัชนีของค่าในอาร์เรย์ มีวิธีอื่นหรือไม่แล้วโทรArray#indexไปรับมัน? ปัญหามาจากความจำเป็นในการเก็บอาร์เรย์ขนาดใหญ่และการโทรArray#indexจำนวนครั้งมหาศาล หลังจากลองสองสามครั้งฉันพบว่าการแคชดัชนีภายในองค์ประกอบโดยการจัดเก็บโครงสร้างที่มี(value, index)เขตข้อมูลแทนที่จะเป็นค่านั้นทำให้ประสิทธิภาพเป็นขั้นตอนใหญ่ (ชนะ 20 เท่า) ฉันยังสงสัยว่ามีวิธีที่สะดวกกว่าในการค้นหาดัชนีขององค์ประกอบโดยไม่ต้องแคช (หรือมีเทคนิคการแคชที่ดีที่จะช่วยเพิ่มประสิทธิภาพ)

3
เหตุใดแอปพลิเคชันของฉันจึงใช้เวลา 24% ของชีวิตในการตรวจสอบค่าว่าง
ฉันมีโครงสร้างการตัดสินใจไบนารีที่สำคัญด้านประสิทธิภาพและฉันต้องการเน้นคำถามนี้ไปที่โค้ดบรรทัดเดียว โค้ดสำหรับตัววนซ้ำต้นไม้ไบนารีอยู่ด้านล่างพร้อมผลลัพธ์จากการรันการวิเคราะห์ประสิทธิภาพเทียบกับมัน public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b = node.BranchData; 0.5% node = b.Child2; 12.8% if (inputs[b.SplitInputIndex] <= b.SplitValue) 0.8% node = b.Child1; } 0.4% return node; } BranchData เป็นฟิลด์ไม่ใช่คุณสมบัติ ฉันทำสิ่งนี้เพื่อป้องกันความเสี่ยงที่มันจะไม่อินไลน์ คลาส BranchNodeData เป็นดังนี้: public …

11
การเปรียบเทียบตัวอย่างโค้ดขนาดเล็กใน C # การปรับใช้นี้สามารถปรับปรุงได้หรือไม่?
บ่อยครั้งที่ฉันพบว่าตัวเองกำลังเปรียบเทียบโค้ดส่วนเล็ก ๆ เพื่อดูว่า implemnetation ใดที่เร็วที่สุด บ่อยครั้งที่ฉันเห็นความคิดเห็นว่ารหัสการเปรียบเทียบไม่ได้คำนึงถึงการกระตุกหรือตัวเก็บขยะ ฉันมีฟังก์ชันการเปรียบเทียบง่ายๆดังต่อไปนี้ซึ่งฉันได้พัฒนาอย่างช้าๆ: static void Profile(string description, int iterations, Action func) { // warm up func(); // clean up GC.Collect(); var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } watch.Stop(); Console.Write(description); Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds); …

4
เครื่องมือสำหรับวิเคราะห์ประสิทธิภาพของโปรแกรม Haskell
ขณะที่การแก้ปัญหาโครงการออยเลอร์ในการเรียนรู้ Haskell (ดังนั้นขณะนี้ฉันเริ่มต้นสมบูรณ์) ฉันมามากกว่าปัญหา 12 ฉันเขียนวิธีแก้ปัญหา (ไร้เดียงสา) นี้: --Get Number of Divisors of n numDivs :: Integer -> Integer numDivs n = toInteger $ length [ x | x<-[2.. ((n `quot` 2)+1)], n `rem` x == 0] + 2 --Generate a List of Triangular Values triaList :: [Integer] triaList = …

4
LINQ Ring: Any () เทียบกับ () สำหรับคอลเลกชันขนาดใหญ่
เนื่องจากวัตถุจำนวนมากมีความแตกต่างด้านประสิทธิภาพระหว่างสิ่งต่อไปนี้หรือไม่? คอลเลกชันประกอบด้วย : myCollection.Contains(myElement) นับได้ใด ๆ : myCollection.Any(currentElement => currentElement == myElement)

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