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

ใช้แท็กนี้ในการอ้างอิงเพื่อเปรียบเทียบประสิทธิภาพของระบบหรืออัลกอริทึมต่าง ๆ หรือวิธีการในการวัดประสิทธิภาพ สัญกรณ์ Big O นั้นเกี่ยวข้องกับความซับซ้อนมากขึ้น แต่อาจส่งผลต่อประสิทธิภาพ

6
ความสำคัญของการเรียนรู้เพื่อ google อย่างมีประสิทธิภาพสำหรับโปรแกรมเมอร์หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว นี่ไม่ใช่การถกเถียงกันเรื่องการใช้ Google ว่าดีหรือไม่ดีสำหรับโปรแกรมเมอร์ โปรดงดเว้นจากคำตอบของคุณ คนส่วนใหญ่ (ส่วนใหญ่ที่ใช้อินเทอร์เน็ต) ใช้ Google ในปัจจุบัน สิ่งที่ฉันกำลังพูดถึงคือสิ่งนี้20 เคล็ดลับเพื่อการค้นหาของ Google ที่มีประสิทธิภาพยิ่งขึ้น คำถาม:คุณคิดว่ามันสำคัญกับโปรแกรมเมอร์อย่างไร? คำถาม:การค้นหาที่มีประสบการณ์ (ความรู้เพิ่มเติมเกี่ยวกับปัญหา) เปรียบเทียบกับการค้นหาที่มีประสิทธิภาพได้อย่างไรนั่นคือการค้นหาโดยบุคคลที่มีประสบการณ์และการค้นหาโดยบุคคลที่สามารถค้นหาได้ดีขึ้น ในแง่ของอัตราผลตอบแทนหรือคุณภาพ . คำถาม:คุณคิดว่าควรสอนสิ่งนี้ในโรงเรียนการเขียนโปรแกรมระดับฝึกงานหรือผู้ฝึกงานหรือไม่? โปรดงดเว้นจากการอภิปรายของการพัฒนาการพึ่งพา Google เพื่อแก้ปัญหา 1) มันไม่ได้เป็นจุดหัวข้อ 2) ถ้าพวกเขาไม่สามารถแก้ปัญหาที่เกิดขึ้นส่วนใหญ่เวลาที่พวกเขาจะไม่ได้รับการว่าจ้าง คำถาม:สิ่งนี้ได้รับการสอนในโรงเรียนสอนการเขียนโปรแกรมที่ดีมาแล้วหรือไม่? บันทึก: บทความยอมรับว่าไม่มีอะไรใหม่ บางคำถามในเว็บไซต์ถูกตอบด้วยง่ายของ Google ค้นหาโพสต์โดยโปรแกรมเมอร์ที่อาจมีเพียงการสืบค้นที่ดีกว่าสำหรับมัน โดยไม่คำนึงถึงความคาดหวังจากการสัมผัสส่วนบุคคลต่อคำตอบส่วนใหญ่เหล่านี้เป็นเพียงคำตอบที่แท้จริงในการค้นหาโดยตรงหรือไม่ประสบความสำเร็จ นี่อาจเป็นความรู้ทั่วไปสำหรับโปรแกรมเมอร์ที่ดี แต่ IMHO นี่ไม่ใช่กรณีโดยเฉลี่ย มีความแตกต่างระหว่าง googling และการค้นหาที่มีประสิทธิภาพ

5
ราคาแพงในที่สุดก็ลอง
ในกรณีของรหัสที่คุณต้องทำการล้างทรัพยากรก่อนออกจากฟังก์ชันมีความแตกต่างที่สำคัญระหว่าง 2 วิธีในการทำมัน การทำความสะอาดทรัพยากรก่อนทุกคำสั่งส่งคืน void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); } การทำความสะอาดทรัพยากรในบล็อกสุดท้าย void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); …

1
ประสิทธิภาพของพจนานุกรม C #
พจนานุกรม C # เป็นวิธีที่ง่ายในการค้นหาว่ามีบางอย่างมีอยู่ ฯลฯ ฉันมีคำถามว่าพวกเขาทำงานอย่างไร สมมุติว่าฉันใช้ ArrayList แทนพจนานุกรม แทนที่จะใช้ContainsKey(หรือวิธีที่เทียบเท่าในภาษาอื่น) ฉันวนลูป ArrayList เพื่อตรวจสอบว่ามีบางสิ่งอยู่ที่นั่น (หรือทำการค้นหาแบบไบนารีถ้าข้อมูลเรียงลำดับหรือคล้ายกัน) ประสิทธิภาพแตกต่างกันอย่างไร เป็นContainsKeyวิธีการที่ใช้บางส่วนวิธีที่มีประสิทธิภาพมากกว่าการวนลูปผ่านปุ่มและตรวจสอบว่าสิ่งที่ฉันค้นหาอยู่? ถ้าสมมติว่าฉันได้สร้างฟังก์ชันแฮชเฉพาะซึ่งสอดคล้องกับประเภทของข้อมูลที่ฉันมีและได้รับการออกแบบมาโดยเฉพาะสำหรับชุดข้อมูลนั้นใช่แล้วฟังก์ชันแฮชนั้นเร็วกว่าการวนลูปผ่านข้อมูล แต่พจนานุกรมทั่วไป เมธอด containKey นั้นไม่เฉพาะเจาะจงกับข้อมูลที่ได้รับ แต่เป็นวิธีการค้นหาทั่วไป โดยทั่วไปสิ่งที่ฉันถามคือ พจนานุกรมมีประโยชน์กับโปรแกรมเมอร์ พวกเขามีวิธีการที่ช่วยในหลายสิ่งและพวกเขารวมสตริงกับจำนวนเต็ม (คีย์และค่า) และอีกมากมาย แต่เกี่ยวกับประสิทธิภาพพวกเขาเสนออะไร สิ่งที่แตกต่างในการมีที่dictionaryVS ArrayListของstructs(string,int)

2
การวิเคราะห์ค่าตัดจำหน่าย? (การรับประกันประสิทธิภาพที่แย่ที่สุด)
การวิเคราะห์ค่าตัดจำหน่ายคืออะไร? และจะช่วยให้ฉันบรรลุผลการปฏิบัติงานที่เลวร้ายที่สุดในโปรแกรมของฉันได้อย่างไร? ฉันกำลังอ่านว่าเทคนิคต่อไปนี้สามารถช่วยโปรแกรมเมอร์ให้รับประกันประสิทธิภาพที่แย่ที่สุด (เช่นในคำพูดของฉันเอง: รับประกันว่าเวลาทำงานของโปรแกรมจะไม่เกินเวลาทำงานในระยะเวลาที่เลวร้ายที่สุด): อัลกอริธึมแบบสุ่ม (เช่นอัลกอริธึม quicksort เป็นกำลังสองในกรณีที่เลวร้ายที่สุด แต่การเรียงลำดับแบบสุ่มอินพุตให้การรับประกันความน่าจะเป็นว่าเวลาการทำงานของมันคือ linearithmic) ลำดับของการดำเนินการ (การวิเคราะห์ของเราต้องคำนึงถึงทั้งข้อมูลและลำดับของการดำเนินการที่ดำเนินการโดยลูกค้า) การวิเคราะห์ค่าตัดจำหน่าย (อีกวิธีหนึ่งในการรับประกันประสิทธิภาพคือการตัดจำหน่ายต้นทุนโดยการติดตามค่าใช้จ่ายทั้งหมดของการดำเนินงานทั้งหมดหารด้วยจำนวนการปฏิบัติงานในการตั้งค่านี้เราสามารถอนุญาตการดำเนินการบางอย่างที่มีราคาแพง ของการดำเนินการต่ำกล่าวอีกนัยหนึ่งเรากระจายค่าใช้จ่ายของการดำเนินการที่มีราคาแพงเพียงไม่กี่แห่งโดยมอบหมายส่วนหนึ่งให้กับการดำเนินการที่ไม่แพงจำนวนมาก) ผู้เขียนกล่าวถึงการใช้การปรับขนาดโครงสร้างข้อมูลอาร์เรย์สำหรับ Stackเป็นตัวอย่างหนึ่งของวิธีการวิเคราะห์ค่าตัดจำหน่าย แต่ฉันยังไม่เข้าใจว่าการวิเคราะห์ค่าตัดจำหน่ายคืออะไรและสามารถนำไปใช้จริงได้อย่างไร (โครงสร้างข้อมูล? อัลกอริทึม?) - รับประกันประสิทธิภาพการออกอากาศ

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

5
มันเร็วเกินไปที่จะเรียนรู้ภาษาใหม่หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา บริบทส่วนบุคคล: ฉันเรียนรู้ C ++ อย่างเป็นทางการในช่วง 6 เดือนที่ผ่านมาที่มหาวิทยาลัย ก่อนหน้านี้ฉันขลุกอยู่ใน JavaScript เป็นเวลาหนึ่งปี ตอนนี้ฉันกำลังพิจารณาการเรียนรู้ Python ในช่วงปิดเทอม โดยแยกโฟกัสของฉันในขั้นตอนการเรียนรู้ก่อนฉันจะลดประสิทธิภาพของการเรียนรู้ของฉันได้อย่างไร ฉันควรใช้จ่ายเดือนปิดอย่างต่อเนื่องใน C ++? หรือเร็วเกินไปที่จะเรียนรู้ภาษาใหม่หรือไม่?

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

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

2
มีการใช้เธรดจำนวนเท่าใด
เมื่อฉัน (อีกครั้ง) สร้างระบบขนาดใหญ่บนคอมพิวเตอร์เดสก์ท็อป / แล็ปท็อปฉันบอกmakeให้ใช้มากกว่าหนึ่งเธรดเพื่อเร่งความเร็วในการรวบรวมเช่นนี้: $ make -j$[ $K * $C ] ที่$Cควรจะระบุจำนวนแกน (ซึ่งเราสามารถถือว่าเป็นตัวเลขที่มีหนึ่งหลัก) เครื่องมีในขณะที่$Kเป็นสิ่งที่ฉันแตกต่างจาก2ไป4ขึ้นอยู่กับอารมณ์ของฉัน ตัวอย่างเช่นฉันอาจบอกว่าmake -j12ฉันมี 4 แกนระบุว่าmakeจะใช้ถึง 12 กระทู้ เหตุผลของฉันคือถ้าฉันใช้เฉพาะ$Cเธรดแกนจะว่างขณะที่กระบวนการกำลังดึงข้อมูลจากไดรฟ์ แต่ถ้าฉันไม่ จำกัด จำนวนเธรด (เช่นmake -j) ฉันเสี่ยงที่จะเสียเวลาในการสลับบริบท, หน่วยความจำไม่เพียงพอหรือแย่กว่านั้น สมมติว่าเครื่องมี$Mหน่วยความจำกิ๊ก ( $Mอยู่ในอันดับ 10) ดังนั้นฉันสงสัยว่ามีกลยุทธ์ที่จัดตั้งขึ้นเพื่อเลือกจำนวนเธรดที่มีประสิทธิภาพมากที่สุดที่จะเรียกใช้หรือไม่

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; } } …

5
วิธีแก้ปัญหาที่ใช้งานได้จริงสำหรับปัญหานี้จะสะอาดเหมือนความจำเป็นหรือไม่?
ฉันมีแบบฝึกหัดใน Python ดังนี้: พหุนามได้รับเป็น tuple ของค่าสัมประสิทธิ์ดังกล่าวว่าอำนาจจะถูกกำหนดโดยดัชนีเช่น: (9,7,5) หมายถึง 9 + 7 * x + 5 * x ^ 2 เขียนฟังก์ชันเพื่อคำนวณค่าสำหรับ x ที่กำหนด ตั้งแต่ฉันเข้าสู่การเขียนโปรแกรมการทำงานเมื่อเร็ว ๆ นี้ฉันเขียน def evaluate1(poly, x): coeff = 0 power = 1 return reduce(lambda accu,pair : accu + pair[coeff] * x**pair[power], map(lambda x,y:(x,y), poly, range(len(poly))), 0) ซึ่งฉันคิดว่าอ่านไม่ได้ดังนั้นฉันจึงเขียน def …

4
วิธีที่มีประสิทธิภาพที่สุดในการจัดเก็บข้อมูลนี้คืออะไร?
ฉันรับผิดชอบในการเขียนรหัส VB ​​เก่าอีกครั้ง ฉันเข้าใจว่ามันทำงานอย่างไร แต่ฉันรู้สึกว่ามีวิธีที่มีประสิทธิภาพมากกว่าในการทำสิ่งที่พวกเขาทำ ฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร นี่คือตัวอย่างที่วางแผนไว้ว่าในแง่ของความต้องการข้อมูลนั้นคล้ายกับสิ่งที่ฉันต้องทำ ผู้ใช้ต้องเลือกผู้ผลิตยี่ห้อรุ่นและสีของรถใน GUI ฉันมีไฟล์ข้อความขนาดใหญ่ที่มีหน้าตาดังนี้: Ford Truck F150 red Ford Truck F150 blue Ford Truck F150 black Ford Truck F150 silver Ford Truck F250 red Ford Truck F250 green Ford Sedan Taurus red Ford Sedan Taurus green Ford Sedan Taurus white Ford... ... Subaru SUV …

3
ค่าที่คำนวณได้และการอ่านอย่างง่าย - ความเจ็บปวดที่จู้จี้สำหรับการออกแบบโดเมนของฉัน!
ปัญหาที่ฉันเผชิญอย่างต่อเนื่องคือวิธีจัดการกับค่าที่คำนวณโดยตรรกะของโดเมนในขณะที่ยังทำงานได้อย่างมีประสิทธิภาพกับที่เก็บข้อมูล ตัวอย่าง: ฉันกำลังส่งคืนรายการผลิตภัณฑ์จากที่เก็บของฉันผ่านบริการ รายการนี้ถูก จำกัด โดยข้อมูลเลขหน้าจากคำขอ DTO ที่ส่งโดยลูกค้า นอกจากนี้ DTO ยังระบุพารามิเตอร์การเรียงลำดับ (enum ที่เหมาะกับลูกค้า) ในสถานการณ์ง่าย ๆ ทุกอย่างใช้งานได้ดี: บริการส่งเพจและเรียงลำดับนิพจน์ไปยัง repo และ repo ออกแบบสอบถามที่มีประสิทธิภาพไปยังฐานข้อมูล ทุกอย่างพังทลายลงมาเมื่อฉันต้องเรียงลำดับค่าที่สร้างขึ้นในหน่วยความจำจากโมเดลโดเมนของฉัน ตัวอย่างเช่นระดับสินค้ามีวิธี IsExpired () ที่ส่งกลับค่าบูลตามตรรกะทางธุรกิจ ตอนนี้ฉันไม่สามารถจัดเรียงและเพจที่ระดับ repo ได้ทุกอย่างจะต้องทำในหน่วยความจำ (ไม่มีประสิทธิภาพ) และบริการของฉันจะต้องทราบความซับซ้อนของเวลาที่จะออก params เหล่านี้ไปยัง repo และเมื่อทำการเรียงลำดับ / การเพจ ตัวเอง รูปแบบเดียวที่ดูเหมือนสมเหตุสมผลสำหรับฉันคือการจัดเก็บสถานะของเอนทิตีใน db (ทำให้ IsExpired () เป็นฟิลด์แบบอ่านอย่างเดียวและอัปเดตผ่านตรรกะโดเมนก่อนการบันทึก) ถ้าฉันแยกตรรกะนี้เป็นที่เก็บ "read model / dto" และ …

9
เป็นวิธีที่ดีที่สุดในการแทรกชุดข้อมูลขนาดใหญ่ลงในฐานข้อมูล MySQL (หรือฐานข้อมูลทั่วไป)
เป็นส่วนหนึ่งของโครงการ PHP ฉันต้องแทรกแถวลงในฐานข้อมูล MySQL เห็นได้ชัดว่าฉันคุ้นเคยกับการทำสิ่งนี้ แต่สิ่งนี้จำเป็นต้องแทรกเข้าไปใน 90 คอลัมน์ในการสืบค้นเดียว ข้อความค้นหาผลลัพธ์น่ากลัวและเสาหิน (โดยเฉพาะการแทรกตัวแปร PHP ของฉันเป็นค่า): INSERT INTO mytable (column1, colum2, ..., column90) VALUES ('value1', 'value2', ..., 'value90') และฉันกังวลว่าฉันจะไม่ทำอย่างนี้ มันใช้เวลานาน (น่าเบื่อ) ในการพิมพ์ทุกอย่างและการทดสอบการเขียนรหัสทดสอบจะน่าเบื่อเท่า ๆ กัน มืออาชีพทำงานเกี่ยวกับการเขียนและทดสอบคิวรีเหล่านี้อย่างรวดเร็วได้อย่างไร มีวิธีที่ฉันสามารถเพิ่มความเร็วของกระบวนการหรือไม่
9 php  mysql  efficiency 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.