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

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

4
ทำไม Haskell (GHC) ถึงเร็วขนาดนี้
Haskell (พร้อมGHCคอมไพเลอร์) นั้นเร็วกว่าที่คุณคาดไว้มาก ใช้อย่างถูกต้องสามารถใช้ภาษาใกล้เคียงกับภาษาระดับต่ำได้ (สิ่งที่ชื่นชอบสำหรับ Haskellers ที่ต้องทำคือพยายามและรับภายใน 5% ของ C (หรือแม้กระทั่งเอาชนะ แต่นั่นหมายความว่าคุณกำลังใช้โปรแกรม C ที่ไม่มีประสิทธิภาพเนื่องจาก GHC รวบรวม Haskell ถึง C) คำถามของฉันคือทำไม? Haskell เป็นการประกาศและขึ้นอยู่กับแคลคูลัสแลมบ์ดา สถาปัตยกรรมเครื่องจักรมีความจำเป็นอย่างชัดเจนโดยขึ้นอยู่กับเครื่องจักรทัวริง ที่จริง Haskell ไม่มีคำสั่งประเมินที่เฉพาะเจาะจง นอกจากนี้แทนที่จะจัดการกับชนิดข้อมูลเครื่องคุณทำประเภทข้อมูลพีชคณิตตลอดเวลา ที่แปลกประหลาดที่สุดคือฟังก์ชั่นการสั่งซื้อที่สูงขึ้น คุณอาจคิดว่าการสร้างฟังก์ชั่นได้ทันทีและการขว้างมันไปรอบ ๆ จะทำให้โปรแกรมช้าลง แต่การใช้ฟังก์ชันคำสั่งซื้อที่สูงกว่าทำให้ Haskell เร็วขึ้น ดูเหมือนว่าในการเพิ่มประสิทธิภาพรหัส Haskell คุณจะต้องทำให้มันดูสง่างามและเป็นนามธรรมมากกว่าการใช้เครื่องจักร ไม่มีคุณสมบัติขั้นสูงใด ๆ ของ Haskell ที่ดูเหมือนจะส่งผลกระทบต่อประสิทธิภาพการทำงานของมันหากไม่ได้ปรับปรุง ขออภัยถ้านี่คือเสียงที่ฟังดู แต่นี่คือคำถามของฉัน: ทำไม Haskell (เรียบเรียงกับ GHC) เร็วขนาดนี้โดยพิจารณาจากธรรมชาติที่เป็นนามธรรมและความแตกต่างจากเครื่องจักรทางกายภาพ? หมายเหตุ: …

10
ผู้ประกอบการ Ternary ช้ากว่าบล็อก if-else ถึงสองเท่า?
ผมอ่านทุกที่ว่าผู้ประกอบ ternary ควรจะเร็วกว่าหรืออย่างน้อยก็เหมือนกับเทียบเท่าif- elseบล็อก อย่างไรก็ตามฉันทำการทดสอบต่อไปนี้และพบว่าไม่ใช่กรณี: Random r = new Random(); int[] array = new int[20000000]; for(int i = 0; i < array.Length; i++) { array[i] = r.Next(int.MinValue, int.MaxValue); } Array.Sort(array); long value = 0; DateTime begin = DateTime.UtcNow; foreach (int i in array) { if (i > 0) { value …

28
C + + เร็วกว่า C # เร็วเท่าใด
หรือตอนนี้เป็นวิธีอื่น ๆ ? จากสิ่งที่ฉันได้ยินมีบางพื้นที่ที่ C # พิสูจน์ได้ว่าเร็วกว่า C ++ แต่ฉันไม่เคยกล้าพอที่จะทดสอบด้วยตัวเอง คิดว่าคุณคนใดสามารถอธิบายความแตกต่างในรายละเอียดเหล่านี้หรือชี้ให้ฉันถูกที่สำหรับข้อมูลนี้

17
ผนวกวัตถุไปยังรายการใน R ในเวลาคงที่ตัดจำหน่าย O (1)?
หากฉันมีรายการ R บางรายการmylistคุณสามารถเพิ่มรายการต่อท้ายobjได้เช่น: mylist[[length(mylist)+1]] <- obj แต่แน่นอนว่ามีบางวิธีที่กะทัดรัดกว่า เมื่อฉันใหม่ที่ R ฉันพยายามเขียนlappend()ดังนี้: lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) } แต่แน่นอนว่าไม่ได้ทำงานเนื่องจากความหมายของการโทรด้วยชื่อของ R ( lstถูกคัดลอกอย่างมีประสิทธิภาพเมื่อมีการโทรดังนั้นการเปลี่ยนแปลงlstจะไม่สามารถมองเห็นได้นอกขอบเขตของlappend()ฉันรู้ว่าคุณสามารถแฮ็คสภาพแวดล้อมในฟังก์ชัน R เพื่อเข้าถึงภายนอก ขอบเขตของฟังก์ชั่นของคุณและกลายสภาพแวดล้อมการโทร แต่ดูเหมือนว่าค้อนขนาดใหญ่ที่จะเขียนฟังก์ชั่นผนวกง่าย ใครช่วยแนะนำวิธีที่สวยงามกว่านี้ได้ไหม คะแนนโบนัสหากมันใช้ได้กับทั้งเวกเตอร์และลิสต์
245 r  performance  list  append  big-o 

30
ทำการทดสอบความเครียดในเว็บแอปพลิเคชันหรือไม่
ก่อนหน้านี้ฉันใช้ Microsoft Web Application Stress Tool และ Pylot เพื่อทดสอบโปรแกรมเว็บ ฉันได้เขียนโฮมเพจง่ายๆสคริปต์เข้าสู่ระบบและคำแนะนำแบบไซต์ (ในไซต์อีคอมเมิร์ซที่เพิ่มรายการสองสามรายการลงในตะกร้าและชำระเงิน) เพียงกดปุ่มหน้าแรกอย่างหนักด้วยนักพัฒนาจำนวนหนึ่งซึ่งมักจะพบปัญหาใหญ่ ปัญหาความสามารถในการขยายเพิ่มเติมจะปรากฏขึ้นในระยะที่สองและมากขึ้น - หลังการเปิดตัว URL ของเครื่องมือที่ผมใช้คือไมโครซอฟท์โฮเมอร์ (aka แอพลิเคชันเว็บของ Microsoft ความเครียดเครื่องมือ ) และPylot รายงานที่สร้างโดยเครื่องมือเหล่านี้ไม่สมเหตุสมผลกับฉันมากและฉันจะใช้เวลาหลายชั่วโมงในการคิดออกว่าการโหลดไซต์พร้อมกันชนิดใดที่จะสามารถสนับสนุน มันคุ้มค่าเสมอเพราะข้อบกพร่องและคอขวดที่โง่เง่าจะเกิดขึ้นเสมอ (ตัวอย่างเช่นเว็บเซิร์ฟเวอร์การกำหนดค่าผิดพลาด) คุณทำอะไรไปแล้วมีเครื่องมืออะไรที่คุณใช้และคุณประสบความสำเร็จในด้านใดบ้าง? ส่วนที่น่าสนใจที่สุดสำหรับฉันคือสูตรคำนวณที่มีความหมายสำหรับการคำนวณจำนวนผู้ใช้ที่ใช้งานพร้อมกันที่แอพสามารถรองรับได้จากตัวเลขที่รายงานโดยแอปพลิเคชันทดสอบความเครียด

15
numpy: ความถี่ที่มีประสิทธิภาพที่สุดจะนับสำหรับค่าที่ไม่ซ้ำในอาร์เรย์
ในnumpy/ scipyมีวิธีที่มีประสิทธิภาพในการรับความถี่นับสำหรับค่าที่ไม่ซ้ำกันในอาร์เรย์หรือไม่? บางสิ่งบางอย่างตามสายเหล่านี้: x = array( [1,1,1,2,2,2,5,25,1,1] ) y = freq_count( x ) print y >> [[1, 5], [2,3], [5,1], [25,1]] (สำหรับคุณผู้ใช้ R ออกมีฉันโดยทั่วไปกำลังมองหาtable()ฟังก์ชั่น)

16
เครื่องมือเครือข่ายที่จำลองการเชื่อมต่อเครือข่ายช้า [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันต้องการประเมินเวลาตอบสนองของหน้าเว็บด้วยสายตาสำหรับการเชื่อมต่ออินเทอร์เน็ตหลายประเภท (DSL, Cable, T1, dial-up ฯลฯ ) ในขณะที่เบราว์เซอร์และเว็บเซิร์ฟเวอร์ของฉันอยู่บน LAN เดียวกันหรือแม้กระทั่งในเครื่องเดียวกัน มีเครื่องมือเครือข่ายแบบง่าย ๆ หรือปลั๊กอินของเบราว์เซอร์ที่ทำให้แบนด์วิดท์เครือข่ายช้าลงเพื่อจำลองสถานการณ์การเชื่อมต่อจริง ๆ ฉันขอขอบคุณที่ป้อนข้อมูลใด ๆ

5
การสร้างรายการว่างใน Python
วิธีที่ดีที่สุดในการสร้างรายการว่างใหม่ใน Python คืออะไร? l = [] หรือ l = list() ฉันถามสิ่งนี้เพราะสองสาเหตุ: เหตุผลทางเทคนิคซึ่งเป็นสิ่งที่เร็ว (การสร้างคลาสทำให้เกิดค่าใช้จ่ายหรือไม่) ความสามารถในการอ่านโค้ด - อันไหนเป็นแบบแผนมาตรฐาน

23
กลยุทธ์สำหรับการใช้ PHP ในไซต์ที่มีโหลดสูง
ก่อนที่คุณจะตอบคำถามนี้ฉันไม่เคยพัฒนาอะไรที่ได้รับความนิยมมากพอที่จะทำให้เซิร์ฟเวอร์มีความเร็วสูง ปฏิบัติกับฉันเหมือนถอนหายใจคนต่างด้าวที่เพิ่งลงจอดบนโลกแม้ว่าจะเป็นคนที่รู้ PHP และเทคนิคการเพิ่มประสิทธิภาพเล็กน้อย ฉันกำลังพัฒนาเครื่องมือในPHPที่สามารถเข้าถึงผู้ใช้จำนวนมากได้ถ้ามันทำงานได้ถูกต้อง อย่างไรก็ตามในขณะที่ฉันมีความสามารถอย่างเต็มที่ในการพัฒนาโปรแกรมฉันค่อนข้างไร้เดียงสาเมื่อพูดถึงการทำบางสิ่งที่สามารถรับมือกับปริมาณข้อมูลจำนวนมาก ดังนั้นนี่เป็นคำถามสองสามข้อ (อย่าลังเลที่จะเปลี่ยนคำถามนี้เป็นเธรดทรัพยากรด้วย) ฐานข้อมูล ตอนนี้ฉันวางแผนจะใช้ฟีเจอร์ MySQLi ใน PHP5 อย่างไรก็ตามฉันจะตั้งค่าฐานข้อมูลที่เกี่ยวข้องกับผู้ใช้และเนื้อหาได้อย่างไร ฉันต้องการฐานข้อมูลหลายฐานข้อมูลจริงหรือไม่? ในขณะนี้ทุกสิ่งต่างก็วนเวียนอยู่ในฐานข้อมูลเดียว - แม้ว่าฉันได้พิจารณากระจายข้อมูลผู้ใช้ไปที่หนึ่ง แต่เนื้อหาจริงไปยังอีกเนื้อหาหนึ่ง เหตุผลของฉันคือการส่งแบบสอบถามไปยังฐานข้อมูลที่แตกต่างกันจะทำให้ภาระในการโหลดเป็นฐานข้อมูลหนึ่ง = 3 โหลดซอร์ส สิ่งนี้จะยังมีผลหรือไม่หากอยู่บนเซิร์ฟเวอร์เดียวกันทั้งหมด เก็บเอาไว้ ฉันมีระบบแม่แบบที่ใช้ในการสร้างหน้าและสลับตัวแปร แม่แบบต้นแบบจะถูกเก็บไว้ในฐานข้อมูลและทุกครั้งที่มีการเรียกแม่แบบนั้นก็คือสำเนาแคช (เอกสาร html) ที่เรียกว่า ในขณะนี้ฉันมีตัวแปรสองประเภทในเทมเพลตเหล่านี้ - var แบบคงที่และ var แบบไดนามิก สแตติกแบบสแตติกมักเป็นสิ่งต่าง ๆ เช่นชื่อหน้าชื่อของไซต์ - สิ่งต่าง ๆ ที่ไม่เปลี่ยนแปลงบ่อย ไดนามิก vars เป็นสิ่งที่เปลี่ยนแปลงในการโหลดแต่ละหน้า คำถามของฉันเกี่ยวกับเรื่องนี้: ว่าฉันมีความคิดเห็นในบทความต่าง ๆ วิธีใดเป็นวิธีที่ดีกว่า: …

12
'สลับ' เร็วกว่า 'ถ้า' หรือไม่
เป็นswitchคำสั่งจริงเร็วกว่าifคำสั่ง? ฉันรันโค้ดด้านล่างในคอมไพเลอร์ x64 C ++ ของ Visual Studio 2010 ด้วย/Oxค่าสถานะ: #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = 0; i < MAX_COUNT; i++) { switch (counter % 4 + 1) { …

12
เขียนไฟล์ไบนารีใน C ++ อย่างรวดเร็ว
ฉันกำลังพยายามเขียนข้อมูลจำนวนมากบน SSD ของฉัน (โซลิดสเตทไดรฟ์) และโดยจำนวนมากฉันหมายถึง 80GB ฉันเรียกค้นเว็บเพื่อหาแนวทางแก้ไข แต่สิ่งที่ดีที่สุดที่ฉันพบคือ: #include <fstream> const unsigned long long size = 64ULL*1024ULL*1024ULL; unsigned long long a[size]; int main() { std::fstream myfile; myfile = std::fstream("file.binary", std::ios::out | std::ios::binary); //Here would be some error handling for(int i = 0; i < 32; ++i){ //Some calculations to fill …

8
System.currentTimeMillis () เทียบกับวันที่ใหม่ () กับ Calendar.getInstance (). getTime ()
ถ้าเป็นเช่นนี้คุณจะได้รับStack Overflow ที่ว่างเปล่า : คำจำกัดความ - System.currentTimeMillis () และวันที่ (). getTime ()? ใน Java ประสิทธิภาพการทำงานและทรัพยากรของการใช้คืออะไร System.currentTimeMillis() เมื่อเทียบกับ new Date() เมื่อเทียบกับ Calendar.getInstance().getTime() เท่าที่ฉันเข้าใจมันSystem.currentTimeMillis()เป็นสิ่งที่มีประสิทธิภาพมากที่สุด อย่างไรก็ตามในแอปพลิเคชั่นส่วนใหญ่ค่าที่มีความยาวนั้นจะต้องถูกแปลงเป็น Date หรือวัตถุที่คล้ายกันเพื่อทำสิ่งที่มีความหมายต่อมนุษย์

13
เมื่อใดที่ควรใช้ Vanilla JavaScript กับ jQuery
ฉันสังเกตเห็นในขณะที่ตรวจสอบ / พยายามตอบคำถาม jQuery ทั่วไปว่ามีวิธีปฏิบัติบางอย่างในการใช้ javascript แทนที่จะเป็น jQuery ซึ่งจริง ๆ แล้วช่วยให้คุณเขียนได้น้อยลงและทำได้ดีในปริมาณที่เท่ากัน และอาจให้ประโยชน์ด้านประสิทธิภาพ ตัวอย่างที่เฉพาะเจาะจง $(this) VS this ภายในเหตุการณ์คลิกอ้างอิงรหัสวัตถุที่ถูกคลิก jQuery $(this).attr("id"); จาวาสคริ this.id; มีวิธีปฏิบัติทั่วไปอื่น ๆ เช่นนี้อีกหรือไม่ การดำเนินการ Javascript บางอย่างสามารถทำได้ง่ายขึ้นโดยไม่ต้องนำ jQuery มาผสม หรือเป็นกรณีที่หายากหรือไม่ (จากทางลัด "jQuery" ที่ต้องการรหัสเพิ่มเติม) แก้ไข:ในขณะที่ฉันขอบคุณคำตอบเกี่ยวกับประสิทธิภาพของ jQuery เทียบกับจาวาสคริปต์ธรรมดา ๆ ฉันกำลังมองหาคำตอบเชิงปริมาณมากขึ้น ในขณะที่การใช้ jQuery , กรณีที่หนึ่งจะจริงจะดีกว่า (การอ่าน / ปึกแผ่น) $()เพื่อใช้จาวาสคริปต์ธรรมดาแทนการใช้ นอกจากตัวอย่างที่ฉันให้ไว้ในคำถามเดิมของฉัน


1
std :: vector ถดถอยประสิทธิภาพเมื่อเปิดใช้งาน C ++ 11
ฉันพบการถดถอยของประสิทธิภาพที่น่าสนใจใน C ++ snippet ขนาดเล็กเมื่อฉันเปิดใช้ C ++ 11: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); } return 0; } ด้วย g ++ (GCC) 4.8.2 20131219 …
235 c++  performance  gcc  c++11  vector 

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