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

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

9
วิธีการวัดประสิทธิภาพของสคริปต์ PHP
ฉันต้องการรู้ว่าอะไรคือวิธีที่ดีที่สุดในการเปรียบเทียบสคริปต์ PHP ของฉัน ไม่สำคัญว่างาน cron หรือเว็บเพจหรือบริการบนเว็บ ฉันรู้ว่าฉันสามารถใช้ microtime ได้ แต่มันทำให้ฉันได้รับสคริปต์ PHP แบบเรียลไทม์หรือไม่ ฉันต้องการทดสอบและเปรียบเทียบฟังก์ชั่นมาตรฐานใน PHP ที่ทำสิ่งเดียวกัน ตัวอย่างเช่นpreg_matchvs strposหรือdomdocumentvs preg_matchหรือ preg_replace vs str_replace` ตัวอย่างของหน้าเว็บ: <?php // login.php $start_time = microtime(TRUE); session_start(); // do all my logic etc... $end_time = microtime(TRUE); echo $end_time - $start_time; สิ่งนี้จะแสดงผล: 0.0146126717 (เปลี่ยนแปลงตลอดเวลา - แต่นั่นคืออันสุดท้ายที่ฉันได้รับ) ซึ่งหมายความว่าใช้เวลา 0.015 หรือมากกว่านั้นในการรันสคริปต์ …

19
มันเร็วกว่าที่จะนับถอยหลังหรือไม่?
ครูวิทยาศาสตร์คอมพิวเตอร์ของเราเคยกล่าวไว้ว่าด้วยเหตุผลบางประการการนับถอยหลังจึงมีประสิทธิภาพมากกว่าการนับถอยหลัง ตัวอย่างเช่นหากคุณจำเป็นต้องใช้ FOR loop และไม่ได้ใช้ดัชนีการวนซ้ำที่ใดที่หนึ่ง (เช่นการพิมพ์บรรทัดของ N * ไปที่หน้าจอ) ฉันหมายถึงรหัสแบบนี้: for (i = N; i >= 0; i--) putchar('*'); ดีกว่า: for (i = 0; i < N; i++) putchar('*'); มันเป็นเรื่องจริงเหรอ? และถ้าเป็นเช่นนั้นมีใครรู้ว่าทำไม?
131 c  performance  loops 

8
วิธีเพิ่มประสิทธิภาพสำหรับความเข้าใจและการวนซ้ำใน Scala
ดังนั้น Scala ควรจะเร็วเท่ากับ Java ฉันกำลังแก้ไขปัญหาProject Eulerบางอย่างใน Scala ที่ฉันได้แก้ไขใน Java ปัญหาเฉพาะที่ 5: "จำนวนบวกที่น้อยที่สุดที่หารด้วยตัวเลขทั้งหมดตั้งแต่ 1 ถึง 20 เท่ากันคืออะไร" นี่คือโซลูชัน Java ของฉันซึ่งใช้เวลา 0.7 วินาทีในการดำเนินการบนเครื่องของฉัน: public class P005_evenly_divisible implements Runnable{ final int t = 20; public void run() { int i = 10; while(!isEvenlyDivisible(i, t)){ i += 2; } System.out.println(i); } boolean isEvenlyDivisible(int a, …

5
การลดเวลาหยุดการรวบรวมขยะในโปรแกรม Haskell
เรากำลังพัฒนาโปรแกรมที่รับและส่งต่อ "ข้อความ" ในขณะที่เก็บประวัติชั่วคราวของข้อความเหล่านั้นเพื่อให้สามารถบอกประวัติข้อความหากมีการร้องขอ ข้อความจะถูกระบุเป็นตัวเลขโดยทั่วไปจะมีขนาดประมาณ 1 กิโลไบต์และเราจำเป็นต้องเก็บรักษาข้อความเหล่านี้นับแสนรายการ เราต้องการเพิ่มประสิทธิภาพโปรแกรมนี้สำหรับเวลาแฝง: เวลาระหว่างการส่งและรับข้อความต้องน้อยกว่า 10 มิลลิวินาที โปรแกรมนี้เขียนใน Haskell และคอมไพล์ด้วย GHC อย่างไรก็ตามเราพบว่าการเก็บรวบรวมขยะหยุดชั่วคราวนานเกินไปสำหรับข้อกำหนดด้านเวลาแฝงของเรา: มากกว่า 100 มิลลิวินาทีในโปรแกรมจริงของเรา โปรแกรมต่อไปนี้เป็นเวอร์ชันที่เรียบง่ายของแอปพลิเคชันของเรา มันใช้Data.Map.Strictเพื่อเก็บข้อความ ข้อความจะถูกByteStrings Intระบุด้วย 1,000,000 ข้อความถูกแทรกในลำดับตัวเลขที่เพิ่มขึ้นและข้อความที่เก่าที่สุดจะถูกลบออกอย่างต่อเนื่องเพื่อเก็บประวัติไว้ที่สูงสุด 200,000 ข้อความ module Main (main) where import qualified Control.Exception as Exception import qualified Control.Monad as Monad import qualified Data.ByteString as ByteString import qualified Data.Map.Strict as Map …

18
ฉันควรใช้ Inline vs. External Javascript เมื่อใด
ฉันต้องการทราบว่าเมื่อใดที่ฉันควรรวมสคริปต์ภายนอกหรือเขียนไว้ในบรรทัดด้วยโค้ด html ในแง่ของประสิทธิภาพและความสะดวกในการบำรุงรักษา การปฏิบัติทั่วไปสำหรับสิ่งนี้คืออะไร? สถานการณ์ในโลกแห่งความจริง - ฉันมีเพจ html หลายเพจที่ต้องการการตรวจสอบความถูกต้องของฟอร์มฝั่งไคลเอ็นต์ สำหรับสิ่งนี้ฉันใช้ปลั๊กอิน jQuery ที่ฉันรวมไว้ในหน้าเหล่านี้ทั้งหมด แต่คำถามคือฉันจะ: เขียนบิตของโค้ดที่กำหนดค่าสคริปต์นี้แบบอินไลน์? รวมบิตทั้งหมดในไฟล์เดียวที่ใช้ร่วมกันระหว่างหน้า html เหล่านี้หรือไม่ รวมแต่ละบิตในไฟล์ภายนอกที่แยกต่างหากหนึ่งรายการสำหรับแต่ละหน้า html? ขอบคุณ

4
“ x <y <z” เร็วกว่า“ x <y และ y <z” หรือไม่
จากหน้านี้เรารู้ว่า: การเปรียบเทียบแบบล่ามโซ่จะเร็วกว่าการใช้ตัวandดำเนินการ เขียนx &lt; y &lt; zแทนx &lt; y and y &lt; z. อย่างไรก็ตามฉันได้รับผลลัพธ์ที่แตกต่างจากการทดสอบข้อมูลโค้ดต่อไปนี้: $ python -m timeit "x = 1.2" "y = 1.3" "z = 1.8" "x &lt; y &lt; z" 1000000 loops, best of 3: 0.322 usec per loop $ python -m timeit "x = 1.2" "y = …

17
Xcode 4 - ประสิทธิภาพช้า
ฉันมีปัญหากับ Xcode 4 ตอบสนองช้ามากต่อการโต้ตอบของผู้ใช้เช่นรหัสการแก้ไขพื้นที่การเลื่อน ฯลฯ สิ่งนี้เกิดขึ้นกับโครงการขนาดใหญ่ที่มีตัวควบคุม / ดูไฟล์มากมายเป็นต้น ฉันเช็ดฮาร์ดดิสก์อย่างสมบูรณ์และติดตั้ง Snow Leopard และ Xcode อีกครั้งในสัปดาห์ถัดไป แต่มันกลับติดอยู่กับเวลาตอบสนองที่น่าผิดหวังอีกครั้ง (มากกว่าหลายวัน) ที่ขัดขวางเวิร์กโฟลว์อย่างมาก ในบางโอกาสฉันได้ลบ "ข้อมูลที่ได้รับ" ของโครงการผ่านทาง Organizer -&gt; โครงการและสิ่งนี้มีผลเพียงเล็กน้อย ฉันสงสัยว่ามีอะไรที่ฉันสามารถทำได้เพื่อปรับปรุงประสิทธิภาพอื่น ๆ นอกเหนือจากการได้เครื่องที่สูงกว่าในตัวอย่างแรก FYI ฉันใช้ MacBook กับโปรเซสเซอร์ Intel Core 2 Duo ที่ 2GHz และ 4GB ของ RAM ในกรณีที่เราจำเป็นต้องอัปเกรดฉันต้องการทราบว่าผู้คนกำลังประสบกับประสิทธิภาพที่ไม่ดีนี้จาก Xcode 4 บนเครื่องที่ระบุอย่างดี (ซึ่งจะทำให้การอัปเกรดฮาร์ดแวร์ของเราค่อนข้างไม่มีจุดหมายเพราะเป็น Xcode เท่านั้นที่มีปัญหาประสิทธิภาพการทำงานบน MacBook) หากใครมีข้อเสนอแนะหรือคำแนะนำหรือแม้กระทั่งสามารถแจ้งให้เราทราบว่าฮาร์ดแวร์ที่ได้รับการปรับปรุงมีผลต่อประสิทธิภาพของ Xcode …

1
เหตุใด“ ใช้เข้มงวด” ปรับปรุงประสิทธิภาพ 10x ในตัวอย่างนี้
ต่อไปนี้เป็นคำถามที่ขยายประสิทธิภาพ String.prototypeฉันกำลังทึ่งจริงๆเพราะเพียงการเพิ่ม"use strict"กับString.prototypeประสิทธิภาพการทำงานวิธีการที่ดีขึ้น 10 ครั้ง คำอธิบายโดยbergiเป็นระยะสั้นและไม่ได้อธิบายให้ฉัน ทำไมถึงมีความแตกต่างอย่างมากระหว่างสองวิธีที่เหมือนกันเกือบจะแตกต่างกัน"use strict"ที่ด้านบนเท่านั้น? คุณสามารถอธิบายรายละเอียดเพิ่มเติมและทฤษฎีที่อยู่เบื้องหลังสิ่งนี้ได้ไหม? String.prototype.count = function(char) { var n = 0; for (var i = 0; i &lt; this.length; i++) if (this[i] == char) n++; return n; }; String.prototype.count_strict = function(char) { "use strict"; var n = 0; for (var i = 0; i …

2
การมีตัวแปรแบบไดนามิกส่งผลต่อประสิทธิภาพอย่างไร
ฉันมีคำถามเกี่ยวกับประสิทธิภาพของdynamicC # ฉันอ่านแล้วdynamicทำให้คอมไพเลอร์ทำงานอีกครั้ง แต่มันทำอย่างไร ต้องคอมไพล์เมธอดทั้งหมดด้วยdynamicตัวแปรที่ใช้เป็นพารามิเตอร์หรือเฉพาะบรรทัดที่มีพฤติกรรม / บริบทแบบไดนามิก? ฉันสังเกตเห็นว่าการใช้dynamicตัวแปรสามารถทำให้การวนซ้ำแบบง่ายๆช้าลงได้ 2 คำสั่งขนาด รหัสที่ฉันเล่นด้วย: internal class Sum2 { public int intSum; } internal class Sum { public dynamic DynSum; public int intSum; } class Program { private const int ITERATIONS = 1000000; static void Main(string[] args) { var stopwatch = new Stopwatch(); dynamic …
128 c#  performance  dynamic 

1
ทำไมรหัส F # ช้าจัง
การใช้ Levenshtein ใน C # และ F # เวอร์ชัน C # เร็วกว่า 10 เท่าสำหรับสองสตริงประมาณ 1,500 ตัวอักษร C #: 69 ms, F # 867 มิลลิวินาที ทำไม? เท่าที่ฉันบอกได้พวกเขาทำสิ่งเดียวกันหรือไม่? ไม่สำคัญว่าจะเป็นรุ่นหรือรุ่นแก้ไขข้อบกพร่อง แก้ไข: หากใครมาที่นี่เพื่อค้นหาการใช้งานแก้ไขระยะทางโดยเฉพาะถือว่าเสีย รหัสทำงานที่นี่ C # : private static int min3(int a, int b, int c) { return Math.Min(Math.Min(a, b), c); } public static …
127 c#  performance  f#  inline 

5
การอัพเกรดโค้ดที่คอมไพล์ Java 7 เป็น Java 8 มีประโยชน์หรือไม่?
ฉันมีแอปพลิเคชันเก่าที่เขียนโดยใช้ Java 7 มันทำงานได้ดีใน Java 8 JRE ฉันไม่ได้วางแผนที่จะเขียนโค้ดใหม่เพื่อใช้ประโยชน์จากคุณสมบัติ Java 8 มีประโยชน์ทางเทคนิคในการอัพเกรดโค้ดที่คอมไพล์แล้วเป็น Java 8 JDK ล่าสุดหรือไม่? เพื่อความชัดเจนขณะนี้โค้ดถูกคอมไพล์ด้วย Java 7 และรันด้วย Java 8 JRE ล่าสุดแล้ว ควรได้รับประโยชน์จากการปรับปรุงรันไทม์ Java 8 อยู่แล้ว คำถามนี้คือประโยชน์ที่จะได้รับจากการคอมไพล์ด้วยเวอร์ชัน 8 และรันด้วยโค้ดไบต์คอมไพล์ Java 8 หรือไม่ นอกจากนี้ฉันไม่ได้กังวลกับผลประโยชน์ที่ไม่ใช่ทางเทคนิคเช่นประสิทธิภาพการทำงานของนักพัฒนา ฉันคิดว่าสิ่งเหล่านี้สำคัญ แต่ไม่ใช่ประเด็นของคำถามนี้ ฉันขอเห็นแก่รหัสการผลิตที่ไม่มีทีมพัฒนา อยู่ในโหมดการบำรุงรักษาอย่างหมดจด
127 java  performance  java-8 

3
พาเนลใดมีประสิทธิภาพสูงสุดในแง่ของเวลาในการแสดงผลและประสิทธิภาพ
มีหลายครั้งที่แผงมากกว่าหนึ่งแผงจะเหมาะกับเลย์เอาต์ที่ฉันต้องการอย่างไรก็ตามฉันรู้ว่าเวลาในการแสดงผลสำหรับประเภทแผงต่างๆมีความแตกต่างกัน ตัวอย่างเช่นMSDNระบุว่า ค่อนข้างง่ายPanelเช่นCanvasสามารถมีประสิทธิภาพที่ดีกว่าที่ซับซ้อนกว่าอย่างเห็นได้ชัดPanelเช่นGrid. ดังนั้นในแง่ของเวลาในการเรนเดอร์และประสิทธิภาพพาเนล WPF มีประสิทธิภาพมากที่สุดในลำดับใด แผง WPF: Canvas DockPanel Grid UniformGrid StackPanel WrapPanel VirtualizingPanel / VirtualizingStackPanel ฉันค่อนข้างแน่ใจว่าฉันเห็นรายการนี้ที่ไหนสักแห่งทางออนไลน์ แต่ตอนนี้ฉันหาไม่เจอ คำตอบที่ดีที่สุดที่ฉันกำลังมองหาคือให้รายการแผงควบคุมตามลำดับที่แสดงผลเร็วที่สุด ฉันเข้าใจว่าจำนวนเด็กเป็นปัจจัยสำคัญที่ทำให้แผงควบคุมมีประสิทธิภาพดังนั้นสำหรับคำถามนี้สมมติว่าแต่ละแผงมีเพียงคู่Label/ TextBoxคู่ นอกจากนี้ฉันต้องการรายการข้อยกเว้นเช่นแผงควบคุมเฉพาะที่ทำงานได้ดีกว่าแผงอื่น ๆ ตามเงื่อนไขบางประการ ปรับปรุง เพื่อสรุปตามคำตอบที่ยอมรับด้านล่างประสิทธิภาพของแผงควบคุมจะขึ้นอยู่กับจำนวนและรูปแบบของรายการย่อยอย่างไรก็ตามโดยทั่วไปรายการจากเร็วที่สุดไปยังช้าที่สุดคือ: Canvas StackPanel WrapPanel DockPanel Grid นอกจากนี้VirtualizingPanel/ VirtualizingStackPanelควรจะใช้ในกรณีที่มีจำนวนมากของรายการที่ไม่เคยพอดีกับหน้าจอ เราขอแนะนำให้คุณอ่านคำตอบที่ยอมรับด้านล่างสำหรับรายละเอียดเพิ่มเติมก่อนที่จะเลือกรายการจากรายการนี้

9
เร่งความเร็วในการแทนที่ regex หลายล้านครั้งใน Python 3
ฉันใช้ Python 3.5.2 ฉันมีสองรายการ รายการ "ประโยค" ประมาณ 750,000 รายการ (สตริงแบบยาว) รายการ "คำ" ประมาณ 20,000 คำที่ฉันต้องการจะลบออกจาก 750,000 ประโยคของฉัน ดังนั้นฉันต้องวนซ้ำ 750,000 ประโยคและทำการแทนที่ประมาณ 20,000 ครั้งแต่เฉพาะในกรณีที่คำของฉันเป็น "คำ" และไม่ได้เป็นส่วนหนึ่งของอักขระที่มีขนาดใหญ่กว่า ฉันกำลังทำสิ่งนี้โดยรวบรวมคำของฉันไว้ล่วงหน้าเพื่อให้พวกเขาถูกขนาบข้างด้วย\bอักขระเมตา compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words] จากนั้นฉันก็วนซ้ำ "ประโยค" ของฉัน import re for sentence in sentences: for word in compiled_words: sentence …

2
ใหญ่แค่ไหนสำหรับตาราง PostgreSQL?
ฉันกำลังดำเนินการออกแบบโครงการ RoR สำหรับ บริษัท ของฉันและทีมพัฒนาของเราได้พบกับการถกเถียงกันเล็กน้อยเกี่ยวกับการออกแบบโดยเฉพาะฐานข้อมูล เรามีรูปแบบที่เรียกMessageว่าต้องคงอยู่ เป็นโมเดลขนาดเล็กมากที่มีคอลัมน์ db เพียงสามคอลัมน์นอกเหนือจาก id แต่จะมีโมเดลเหล่านี้จำนวนมากเมื่อเราไปที่การผลิต เรากำลังดูการแทรกมากถึง 1,000,000 ครั้งต่อวัน โมเดลจะถูกค้นหาโดยคีย์ต่างประเทศสองคีย์เท่านั้นซึ่งสามารถจัดทำดัชนีได้ เช่นกันแบบจำลองไม่จำเป็นต้องถูกลบ แต่เราไม่จำเป็นต้องเก็บไว้เมื่อมันมีอายุประมาณสามเดือน ดังนั้นสิ่งที่เราสงสัยคือการใช้ตารางนี้ใน Postgres จะทำให้เกิดปัญหาด้านประสิทธิภาพที่สำคัญหรือไม่? ใครมีประสบการณ์เกี่ยวกับฐานข้อมูล SQL ขนาดใหญ่มากช่วยบอกเราได้หรือไม่ว่าปัญหานี้จะเป็นปัญหา? ถ้าเป็นเช่นนั้นเราควรเลือกทางเลือกใด

14
การใช้อัญประกาศเดี่ยวเทียบกับอัญประกาศคู่ในทับทิมมีประสิทธิภาพเพิ่มขึ้นหรือไม่?
คุณรู้หรือไม่ว่าการใช้อัญประกาศคู่แทนอัญประกาศเดี่ยวในทับทิมจะทำให้ประสิทธิภาพการทำงานลดลงอย่างมีความหมายในทับทิม 1.8 และ 1.9 ดังนั้นถ้าฉันพิมพ์ question = 'my question' เร็วกว่า question = "my question" ฉันจินตนาการว่าทับทิมพยายามคิดว่าจะต้องมีการประเมินอะไรบางอย่างเมื่อพบเครื่องหมายอัญประกาศคู่และอาจใช้เวลาในการทำเช่นนั้น
126 ruby  performance  syntax 

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