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

คำถามที่เกี่ยวข้องกับการปรับปรุงประสิทธิภาพของแอปพลิเคชันอาจมีตั้งแต่สถาปัตยกรรมซอฟต์แวร์ที่เลือกไปจนถึงการเลือกอัลกอริทึม

3
เหตุผลเบื้องหลังการใช้งาน C # String.Split () ที่ไม่เข้าใจง่าย
ใน C # ถ้าฉันต้องการแยก a stringอีกอันstringฉันต้องทำสิ่งนั้น: testString.Split(new string[] { "anotherString" }, StringSplitOptions.None); จากString.Splitเอกสาร MSDN ที่มีการโอเวอร์โหลดเราสามารถเห็นการใช้งานและสาเหตุที่ต้องทำการโทร มาจากPythonมันยากสำหรับฉันที่จะเข้าใจอย่างถูกต้องว่าทำไมจึงต้องมีการโทร ฉันหมายความว่าฉันสามารถใช้Regex.Splitเพื่อให้ได้ไวยากรณ์ที่คล้ายกันมากกว่าการดำเนินการของงูใหญ่ แต่ผมจะต้องทำมันที่ค่าใช้จ่ายของประสิทธิภาพการทำงานน้อยกว่า (เวลาการติดตั้ง) สำหรับอะไรที่เรียบง่าย โดยพื้นฐานแล้วคำถามของฉันคือทำไมเราทำไม่ได้: testString.Split("anotherString"); โปรดทราบว่าฉันไม่ได้แนะนำต้นแบบหรือการนำไปใช้ใด ๆ ฉันเข้าใจว่าทำไมคุณไม่สามารถใช้เวอร์ชันด้านบนเนื่องจาก API ปัจจุบัน เป้าหมายของฉันคือเข้าใจว่าทำไม API ดังกล่าวจึงถูกสร้างขึ้นโดยคำนึงถึงประโยชน์ที่ไวยากรณ์ข้างต้นนำมา ณ ตอนนี้ความยืดหยุ่นดูเหมือนจะเป็นเป้าหมายของกระแสString.Splitที่เข้าท่า แต่ตามจริงแล้วฉันคิดว่าจริงๆแล้วมีการแสดงบางอย่างที่ได้รับบ้าง ฉันเดาว่าฉันผิด

8
ชื่อตัวแปรมีผลกระทบต่อประสิทธิภาพของเว็บไซต์หรือไม่
ชื่อตัวแปรมีผลต่อประสิทธิภาพของเว็บไซต์หรือไม่ ฉันรู้ว่าสิ่งนี้จะเป็นตัวเลขที่ต่ำมาก แต่ก็ยังมีใครที่สามารถให้เหตุผลที่ไม่เลือกชื่อตัวแปรแบบยาวในแง่ของประสิทธิภาพได้ใช่ไหม

5
คุณควรลดการสร้างวัตถุขนาดเล็กจำนวนมากหรือไม่
เมื่อเขียนสิ่งที่สร้างวัตถุขนาดเล็กจำนวนมาก (1,000s) บ่อยครั้งคุณควรพยายามลดประสิทธิภาพการทำงานลงหรือไม่ โดยเฉพาะอย่างยิ่งหากคุณไม่ทราบว่าระบบนั้นจะทำงานบนเดสก์ท็อประดับต่ำถึงสูงหรือแม้แต่มือถือ สำหรับมือถือฉันได้ยินมาว่าการสร้างวัตถุจำนวนมากเป็นอุปสรรคต่อประสิทธิภาพการทำงานที่ดีแม้ว่าฉันจะไม่รู้ว่ามันเป็นความจริงแค่ไหน ฉันมีตัวอย่างที่แสดงความคิดนี้ได้ดี drawPixel(Point)ในโปรแกรมกราฟิกบอกว่ามีวิธีการที่จะใช้สำหรับการวาดภาพทั้งหมดที่เรียกว่านึกคิด อาจมีการสร้างคะแนน 1,000 คะแนนและอาจเกิดซ้ำบ่อยเช่นในเกมที่สามารถเรียก 60+ ครั้งต่อวินาที หรือdrawPixel(int x, int y)อาจใช้เพื่อลดการสร้างออบเจ็กต์ Point จำนวนมาก ในการออกแบบเชิงวัตถุฉันคิดว่าการใช้ Point น่าจะเหมาะสมกว่า อย่างไรก็ตามการใช้ประเภทดั้งเดิมอาจเพิ่มประสิทธิภาพ การเพิ่มประสิทธิภาพอาจไม่ได้ผลในกรณีส่วนใหญ่ แต่ฉันไม่แน่ใจเกี่ยวกับสิ่งต่าง ๆ เช่นโทรศัพท์มือถือหรือเครื่องรุ่นเก่า ประสิทธิภาพการทำงานเพิ่มขึ้นจากการทำอะไรแบบนี้และมันเป็นสิ่งที่ควรนำมาพิจารณาด้วย?

5
มีข้อ จำกัด ทางเทคนิคหรือคุณสมบัติภาษาที่ป้องกันไม่ให้สคริปต์ Python ของฉันเร็วเท่ากับโปรแกรม C ++ ที่เทียบเท่าหรือไม่
ฉันเป็นผู้ใช้ Python มาเป็นเวลานาน ไม่กี่ปีที่ผ่านมาฉันเริ่มเรียนรู้ C ++ เพื่อดูว่ามันสามารถให้อะไรในแง่ของความเร็ว ในช่วงเวลานี้ฉันจะใช้ Python เป็นเครื่องมือในการสร้างต้นแบบต่อไป ดูเหมือนว่านี่เป็นระบบที่ดี: การพัฒนาที่คล่องตัวด้วย Python การดำเนินการที่รวดเร็วใน C ++ เมื่อเร็ว ๆ นี้ฉันใช้ Python มากขึ้นอีกครั้งและเรียนรู้วิธีหลีกเลี่ยงข้อผิดพลาดและรูปแบบการต่อต้านทั้งหมดที่ฉันใช้อย่างรวดเร็วในปีก่อน ๆ กับภาษา ฉันเข้าใจว่าการใช้คุณสมบัติบางอย่าง (รายการความเข้าใจการแจกแจง ฯลฯ ) สามารถเพิ่มประสิทธิภาพได้ แต่มีข้อ จำกัด ทางเทคนิคหรือคุณสมบัติภาษาที่ป้องกันไม่ให้สคริปต์ Python ของฉันเร็วเท่ากับโปรแกรม C ++ ที่เทียบเท่ากันหรือไม่

4
วิธีที่เร็วที่สุดในการแยกสตริงแบบมีตัวคั่นใน Java
ฉันกำลังสร้างเครื่องมือเปรียบเทียบที่ให้ความสามารถในการจัดเรียงหลายคอลัมน์ในสตริงแบบมีตัวคั่น ขณะนี้ฉันกำลังใช้วิธีการแยกจากคลาส String เป็นตัวเลือกที่ฉันต้องการสำหรับการแยกสตริงดิบเป็นโทเค็น นี่เป็นวิธีที่มีประสิทธิภาพดีที่สุดในการแปลงสตริงดิบเป็นอาร์เรย์สตริงหรือไม่ ฉันจะเรียงลำดับแถวนับล้านดังนั้นฉันคิดว่าวิธีการที่สำคัญ ดูเหมือนว่าจะทำงานได้ดีและง่ายมาก แต่ไม่แน่ใจว่ามีวิธีที่เร็วกว่าใน java นี่คือวิธีการเรียงลำดับใน Comparator ของฉัน: public int compare(String a, String b) { String[] aValues = a.split(_delimiter, _columnComparators.length); String[] bValues = b.split(_delimiter, _columnComparators.length); int result = 0; for( int index : _sortColumnIndices ) { result = _columnComparators[index].compare(aValues[index], bValues[index]); if(result != 0){ break; } } …

7
เมื่อใดที่เริ่มคิดเกี่ยวกับความยืดหยุ่น [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมีปัญหาตลก แต่ก็แย่มาก ฉันกำลังจะเปิดตัวแอพ (iPhone) ใหม่ มันเป็นเกมแบบเล่นพร้อมกันหลายคนที่ทำงานบนแบ็คเอนด์ที่กำหนดเองของฉัน แต่ฉันกลัวที่จะเปิดตัว ด้วยเหตุผลบางอย่างฉันคิดว่ามันอาจกลายเป็นสิ่งที่ยิ่งใหญ่และความนิยมของมันจะทำลายฐานข้อมูล MySQL + เซิร์ฟเวอร์เดี่ยวที่โดดเดี่ยวของฉัน ในมือข้างหนึ่งฉันคิดว่าถ้ามันเพิ่มขึ้นฉันควรเตรียมพร้อมและมีโครงสร้างพื้นฐานที่ปรับขนาดได้แล้ว ในทางกลับกันฉันแค่รู้สึกอยากจะนำมันออกไปสู่โลกและดูว่าเกิดอะไรขึ้น ฉันมักจะอ่านสิ่งต่าง ๆ เช่น "การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากของความชั่วร้ายทั้งหมด" หรือผู้คนที่บอกว่าคุณควรสร้างเกมนักฆ่าของคุณตอนนี้ด้วยเครื่องมือที่พร้อมใช้งานและกังวลเรื่องอื่น ๆ เช่นความยืดหยุ่นในภายหลัง ฉันชอบที่จะได้ยินความคิดเห็นเกี่ยวกับเรื่องนี้จากผู้เชี่ยวชาญหรือผู้ที่มีประสบการณ์เกี่ยวกับเรื่องนี้ ขอบคุณ!

2
มีการศึกษาเปรียบเทียบการใช้หน่วยความจำของภาษาการเขียนโปรแกรมรันไทม์ที่สัมพันธ์กับการแสดงออกและอัตราส่วนการผลิตข้อบกพร่อง? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา มีการศึกษาเปรียบเทียบจำนวนมากและมีให้ทางออนไลน์เมื่อพูดถึงประสิทธิภาพรันไทม์ของแอพพลิเคชั่นที่สร้างขึ้นโดยใช้ภาษาเดียวหรืออีกภาษาหนึ่ง บางคนขับเคลื่อนโดย บริษัท นักวิชาการบางคนรายงานการทดลองส่วนตัวบางอย่าง นอกจากนี้เรายังได้รับส่วนแบ่งที่ดีจากการศึกษาเปรียบเทียบผลข้างเคียงของภาษาการเขียนโปรแกรมและการใช้เครื่องมือเช่น: สร้างครั้ง โอกาสในการตรวจจับข้อผิดพลาดหลังการผลิต พลังการแสดงออก ฯลฯ ... อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันได้รับความเสียหายจากการใช้หน่วยความจำของโปรแกรมของฉันมากกว่าสิ่งอื่นใด นี่อาจมาจากความจริงที่ว่าในขณะที่กฎของมัวร์อยู่ข้างเราเพื่อให้ได้ประสิทธิภาพที่ดิบเราได้ตระหนักว่าคอขวดอื่น ๆ และฉันมักจะไม่อัปเดตฮาร์ดแวร์ของฉันทุกครั้งและฉันมี "เก่า" บางอย่าง (อ่าน 2005-2006 3.6GHz Pentium 4 พร้อม 4GB of RAM) ซึ่งปัจจุบันยากที่จะถูกใช้งานสำหรับแอปพลิเคชันขนาดใหญ่ที่ไม่มี ทำให้ฉันต้องเจอกับปัญหาอย่างมากในการบีบน้ำผลไม้ออกเล็กน้อย (ตัวเลือกของ OS, UI, tweaking ของบริการและ daemons ทางเลือกของแอปพลิเคชันที่จะใช้สำหรับงานหรืออื่น ... ) ค่อนข้างตรงไปตรงมาบางครั้งฉันก็โกรธtopหรือprocexpร้องไห้เมื่อเห็นความทรงจำที่ใช้โดยโปรแกรมที่ไร้เดียงสาที่สุด …

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

4
อะไรคือความหมายของประโยค“ เราต้องการให้มันถูกคอมไพล์ดังนั้นมันจึงไม่เผาซีพียูทำสิ่งที่ผิด”
ผมอ่านนี้บทความ มันมีย่อหน้าต่อไปนี้ และสกาล่ากลายเป็นว่าเร็วหรือไม่? คุณนิยามคำว่า fast อะไร เกี่ยวกับเร็วเท่า Java ไม่จำเป็นต้องเร็วเท่ากับ C หรือ Assembly Python ไม่เร็วกว่า Ruby อย่างมีนัยสำคัญ เราต้องการทำมากขึ้นด้วยเครื่องจักรที่น้อยลงใช้ประโยชน์จากการทำงานพร้อมกันได้ดี เราต้องการที่จะรวบรวมดังนั้นจึงไม่เผาซีพียูทำสิ่งที่ผิด ฉันกำลังมองหาความหมายของประโยคสุดท้าย ภาษาที่แปลจะทำให้ซีพียูทำสิ่งที่ "ผิด" อย่างไร

5
การปรับปรุงประสิทธิภาพสำหรับการ grepping ทับไฟล์ขนาดใหญ่
ฉันมี FILE_A ซึ่งมีมากกว่า 300,000 บรรทัดและ FILE_B ซึ่งมีมากกว่า 30 ล้านบรรทัด ฉันสร้างสคริปต์Bashที่ greps แต่ละบรรทัดใน FILE_A มากกว่าใน FILE_B และเขียนผลลัพธ์ของ grep ไปยังไฟล์ใหม่ กระบวนการทั้งหมดนี้ใช้เวลานานกว่า 5 ชั่วโมง ฉันจะปรับปรุงประสิทธิภาพของสคริปต์ได้อย่างไร ฉันใช้grep -F -m 1เป็นคำสั่ง grep FILE_A มีลักษณะดังนี้: 123456789 123455321 และ FILE_B เป็นเช่นนี้: 123456789,123456789,730025400149993, 123455321,123455321,730025400126097, ดังนั้นด้วย Bash ฉันมีwhileวนรอบที่เลือกบรรทัดถัดไปใน FILE_A และ greps มากกว่าใน FILE_B เมื่อพบรูปแบบใน FILE_B ฉันเขียนลงในไฟล์ result.txt while read …

6
ตัวอย่างของอัลกอริทึมที่ใช้งานทั่วไปที่ได้รับประโยชน์จากการใช้งาน GPU? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังมองหาตัวอย่างของอัลกอริธึมที่ใช้งานทั่วไป (หมายถึงไม่เกี่ยวข้องกับกราฟิค) ที่ได้รับการพิสูจน์แล้วว่ารันลำดับความสำคัญได้เร็วกว่าบน GPU มากกว่าบน CPU ฉันจะใช้ตัวอย่างเหล่านี้เพื่อคิดอย่างสร้างสรรค์เกี่ยวกับอัลกอริทึมอื่น ๆ ที่ฉันสามารถนำไปใช้กับ GPU

6
การใช้ AJAX จะปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์อย่างกว้างขวางหรือไม่
AJAX เห็นได้ชัดว่าช่วยปรับปรุงส่วนติดต่อผู้ใช้ แต่สิ่งนี้จะช่วยลดภาระของเซิร์ฟเวอร์หรือไม่ คุณอาจคิดว่าเป็นเพราะหน้าเว็บทั้งหมดไม่จำเป็นต้องแสดงทุกครั้ง แต่อาจมีตัวแปรอื่น ๆ ที่ฉันไม่ได้พิจารณา
10 performance  ajax 

10
ความเร็วของซอฟต์แวร์ปรากฏชัดในสายตาของลูกค้าบ่อยแค่ไหน?
ในทางทฤษฎีลูกค้าควรรู้สึกถึงการปรับปรุงประสิทธิภาพของซอฟต์แวร์จากประสบการณ์โดยตรง ในทางปฏิบัติบางครั้งการปรับปรุงนั้นไม่สามารถสังเกตเห็นได้ชัดเจนเช่นในการสร้างรายได้จากการปรับปรุงจำเป็นต้องใช้ตัวเลขประสิทธิภาพที่สามารถอ้างอิงได้ในการตลาดเพื่อดึงดูดลูกค้า เราทราบถึงความแตกต่างระหว่างประสิทธิภาพที่รับรู้ (ความหน่วงแฝงของ GUI และอื่น ๆ ) กับประสิทธิภาพของฝั่งเซิร์ฟเวอร์ (เครื่องจักรเครือข่ายโครงสร้างพื้นฐาน ฯลฯ ) โปรแกรมเมอร์จำเป็นต้องใช้เวลานานแค่ไหนในการวิเคราะห์ประสิทธิภาพ "เขียน" ซึ่งผู้ชมไม่ใช่เพื่อนโปรแกรมเมอร์ แต่เป็นผู้จัดการและลูกค้า

10
วิธีการสื่อสารกับเพื่อนร่วมงานที่พิจารณากรอบการทำงานที่ประสบความสำเร็จ
เราจะขายความคิดเช่น "เราควรใช้ jQuery เพราะมันมีประสิทธิภาพสูงสุดและรองรับเบราว์เซอร์ข้ามเบราว์เซอร์" หรือ "เอนทิตี้ของเฟรมเวิร์กนั้นยอดเยี่ยมเพราะมันเป็นระเบียบและดูแลโมเดลของเราโดยอัตโนมัติ" เมื่อคำตอบทั่วไป ประสิทธิภาพไม่ดี "หรือ" เอนทิตีนำ 12 คอลัมน์ในตารางเมื่อเราต้องการเพียง 10 " ฉันเป็นคนที่จริงจังซึ่งมีแนวโน้มที่จะเชื่อถือสัจพจน์ที่ฉันได้พัฒนาขึ้นมาจากประสบการณ์ (ไม่ใช่ปัญหาด้านประสิทธิภาพจนกว่าจะมีการชะลอตัวที่มองเห็นได้) ฉันไม่รู้ว่ามี "หมวดหมู่" เฉพาะที่อีกอันหนึ่งเหมาะสมที่สุดหรือไม่ในขณะที่ทุกอย่างเป็นปัญหาด้านประสิทธิภาพจนกว่าจะพิสูจน์ได้ว่าเป็นอย่างอื่น ... หรือแม้กระทั่งที่จะเริ่มการสื่อสารที่นี่

3
Clang / LLVM พร้อมสำหรับช่วงไพร์มหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา เสียงดังกราวสามารถใช้แทน gcc? ประสบการณ์ของคุณเกี่ยวกับสิ่งนั้น? มีข้อเสียอะไรบ้าง? ประสิทธิภาพของการคอมไพล์ดีกว่า gcc มาก แต่ประสิทธิภาพของโค้ดที่สร้างขึ้นเมื่อรันมัน? มีเครื่องมือที่ดีเป็น front-end (IDE) ให้ทำงานบน Linux หรือ Windows หรือไม่? แก้ไข: ฉันหมายถึงคอมไพเลอร์ C C ++ มันยังไม่ค่อยดีเท่าไหร่

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