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

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

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

5
Python ตีความหรือเรียบเรียงหรือไม่?
นี่เป็นเพียงความสงสัยในขณะที่ฉันอ่านเกี่ยวกับภาษาที่แปลและเรียบเรียง Rubyไม่ต้องสงสัยเลยว่าเป็นภาษาที่ตีความเนื่องจากซอร์สโค้ดถูกประมวลผลโดยล่าม ณ จุดดำเนินการ ในทางตรงกันข้ามCเป็นภาษาที่รวบรวมเป็นหนึ่งจะต้องรวบรวมซอร์สโค้ดแรกตามเครื่องแล้วดำเนินการ ผลลัพธ์นี้เป็นการดำเนินการที่รวดเร็วยิ่งขึ้น ตอนนี้มาที่Python : รหัสหลาม ( somefile.py ) เมื่อนำเข้าสร้างไฟล์ ( somefile.pyc ) ในไดเรกทอรีเดียวกัน ให้เราบอกว่าการนำเข้าจะทำในเปลือกหลามหรือโมดูล django หลังจากนำเข้าฉันเปลี่ยนรหัสเล็กน้อยและดำเนินการฟังก์ชั่นที่นำเข้าอีกครั้งเพื่อค้นหาว่ามันยังคงใช้รหัสเดิมอยู่ สิ่งนี้ชี้ให้เห็นว่าไฟล์ * .pyc เป็นไฟล์ไพ ธ อนที่คอมไพล์เหมือนกับไฟล์ที่สร้างขึ้นหลังจากการคอมไพล์ไฟล์ C ถึงแม้ว่าฉันจะไม่สามารถเรียกใช้ไฟล์ * .pyc ได้โดยตรง เมื่อดำเนินการไฟล์ python (somefile.py) โดยตรง (./somefile.py หรือ python somefile.py) จะไม่มีการสร้างไฟล์. pyc และรหัสจะถูกดำเนินการตามที่ระบุถึงพฤติกรรมที่ตีความ สิ่งเหล่านี้แนะนำให้รวบรวมรหัสไพ ธ อนทุกครั้งที่มีการนำเข้าในกระบวนการใหม่เพื่อสร้าง. pyc ในขณะที่มันถูกตีความเมื่อดำเนินการโดยตรง ดังนั้นฉันควรใช้ภาษาประเภทใด ตีความหรือรวบรวม? และประสิทธิภาพของมันเปรียบเทียบกับภาษาที่แปลและเรียบเรียงได้อย่างไร …

10
ทำไมไม่มีระบบปฏิบัติการภาษาระดับสูง? ภาษาระดับต่ำมีประสิทธิภาพมากขึ้นหรือไม่
โดยไม่ต้องเกรงใจฉันอยากให้คุณพิจารณาความเป็นไปได้ของสิ่งนี้ ระบบปฏิบัติการส่วนใหญ่ในปัจจุบันนี้ใช้ภาษาระดับต่ำ (ส่วนใหญ่ C / C ++) แม้แต่ภาษาใหม่เช่น Android ใช้ JNI และการใช้งานพื้นฐานอยู่ใน C ในความเป็นจริง (นี่เป็นการสังเกตการณ์ส่วนตัว) หลายโปรแกรมที่เขียนใน C ทำงานเร็วกว่าโปรแกรมระดับสูง (เช่น: การส่ง (ไคลเอนต์ bittorrent บน Ubuntu) เป็นจำนวนมากเร็วกว่า Vuze (Java) หรือ Deluge (Python) ) แม้แต่คอมไพเลอร์ไพ ธ อนก็เขียนด้วยภาษา C ถึงแม้ว่า PyPy จะเป็นข้อยกเว้น ดังนั้นมีเหตุผลพิเศษสำหรับเรื่องนี้หรือไม่? ทำไมมันจึงเรียกว่า "ภาษาระดับสูง" ของเราที่มีแนวคิด "OOP" ที่ยอดเยี่ยมไม่สามารถใช้ในการสร้างระบบปฏิบัติการที่มั่นคง? ดังนั้นฉันมี 2 คำถามโดยทั่วไป เหตุใดแอปพลิเคชันที่เขียนด้วยภาษาระดับต่ำจึงมีประสิทธิภาพมากกว่า HLL ที่เป็นคู่กัน …

10
มีข้อมูลใด ๆ เกี่ยวกับข้อดีของการทำงานจากที่บ้านหรือไม่? [ปิด]
มีข้อมูลใด ๆ ที่ยาก (การศึกษาการเปรียบเทียบการวิเคราะห์ที่ไม่ใช่แค่แค่ความรู้สึก) เกี่ยวกับข้อดีและข้อเสียของการทำงานจากที่บ้านหรือไม่? devs ของฉันถามเกี่ยวกับเช่นทำงานจากที่บ้านหนึ่งวันต่อสัปดาห์เจ้านายไม่ชอบด้วยเหตุผลต่าง ๆ ซึ่งบางอย่างที่ฉันเห็นด้วยกับ แต่ฉันคิดว่าพวกเขาไม่จำเป็นต้องใช้ในกรณีนี้ เรามีสำนักงานจริง (2..3 คนต่อคน) การรบกวนยังคงเป็นเรื่องปกติ IMO มันจะเป็นประโยชน์สำหรับการมุ่งเน้นและด้วย 1 วัน / สัปดาห์จะไม่สูญเสียมากที่การมีปฏิสัมพันธ์และการสื่อสาร นอกจากนี้มันจะเป็นประโยชน์ที่ดีและประหยัดการเดินทาง ที่เกี่ยวข้อง: ข้อดีข้อเสียของการทำงานจากระยะไกล / จากที่บ้าน (จุดที่น่าสนใจ แต่ไม่มีข้อเท็จจริงที่ยาก) ในการชี้แจง: มันไม่ใช่การตัดสินใจของฉันที่จะทำฉันยอมรับว่ามีอาชีพและการต่อต้านขึ้นอยู่กับสถานการณ์และเรากำลังผลักดันให้ "ลองทำ" ฉันถามคำถามนี้โดยเฉพาะเพราะ (ก) ข้อเท็จจริงเป็นสิ่งที่ดีนอกเหนือจากความคิดในการโต้แย้งกับหัวหน้าวิศวกรและ (ข) เราในฐานะนักพัฒนาควรสร้างข้อเท็จจริงเช่นเดียวกับการค้าที่น่าเคารพนับถือทุกประการ

3
มันเสียเปล่าไหมที่จะสร้างตารางฐานข้อมูลใหม่แทนที่จะใช้ชนิดข้อมูล enum?
สมมติว่าฉันมีบริการ 4 ประเภทที่ฉันเสนอให้ (พวกเขาไม่น่าจะเปลี่ยนแปลงบ่อย): การทดสอบ ออกแบบ การเขียนโปรแกรม อื่น ๆ สมมติว่าฉันมีบริการจริง 60-80 รายการที่แต่ละบริการจัดอยู่ในหมวดหมู่ข้างต้น ตัวอย่างเช่น 'บริการ' สามารถเป็น "โปรแกรมทดสอบโดยใช้เทคนิค A" และเป็นประเภท "การทดสอบ" ฉันต้องการเข้ารหัสให้เป็นฐานข้อมูล ฉันมากับตัวเลือกไม่กี่: ตัวเลือก 0: ใช้VARCHARโดยตรงเพื่อเข้ารหัสประเภทบริการโดยตรงเป็นสตริง ตัวเลือกที่ 1: enumฐานข้อมูลการใช้งาน แต่enum นั้นชั่วร้าย ตัวเลือก 2: ใช้สองตาราง: service_line_item (id, service_type_id INT, description VARCHAR); service_type (id, service_type VARCHAR); ฉันยังสามารถเพลิดเพลินกับ Referential Integrity: ALTER service_line_item ADD FOREIGN KEY …

3
มีเหตุผลใดที่จะใช้ varchar บนคอลัมน์ข้อความในฐานข้อมูลหรือไม่?
เป็นvarcharเพียงเศษเล็กเศษน้อยจากก่อนหน้าtextนี้มาหรือมีกรณีการใช้งานที่คุณต้องการใช้varchar? (หรือcharสำหรับเรื่องนั้น .. ) (ฉันใช้ Postgres และ MySQL (MyISAM) ทุกวันดังนั้นนี่คือสิ่งที่ฉันสนใจมากที่สุด แต่คำตอบสำหรับฐานข้อมูลอื่นนั้นยินดีต้อนรับแน่นอน ^ _-)

11
เมื่อฉันทดสอบความแตกต่างในเวลาระหว่างการเลื่อนและการคูณใน C ไม่มีความแตกต่าง ทำไม?
ฉันได้รับการสอนแล้วว่าการขยับเป็นเลขฐานสองนั้นมีประสิทธิภาพมากกว่าการคูณด้วย 2 ^ k ดังนั้นฉันต้องการทดสอบและฉันใช้รหัสต่อไปนี้เพื่อทดสอบ: #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple loop that oscillates between int 1 and int 2 for (runs = 0; runs < 100000000; runs++) { // I first compiled + ran it a few …

18
ทำไม บริษัท ไม่ซื้อเครื่องมือที่ให้ความบันเทิงแก่นักพัฒนา [ปิด]
หลายครั้งที่ฉันรู้สึกเหนื่อยล้าจากการพัฒนาและความคิดของฉันไม่ได้ช่วยฉันอีกต่อไป (ที่บ้าน) ฉันเพียงแค่ทำอะไรที่สนุกสนานและใจของฉันก็ฟรีสำหรับการทำงานนานหลายชั่วโมงด้วยความสามารถในการแก้ปัญหาที่สูงขึ้น อย่างไรก็ตามเมื่อฉันแนะนำเทคนิคนี้ให้กับผู้จัดการของฉันเป็นเทคนิคในการเพิ่มผลผลิตและประสิทธิภาพของนักพัฒนาเขาปฏิเสธที่จะยอมรับบนพื้นที่ทำงานไม่ใช่สถานที่เพื่อความบันเทิง ฉันคิดว่าสูตรนี้ใช้ได้สำหรับฉัน มันเป็นจริงสำหรับนักพัฒนาอื่น ๆ เช่นกัน: 2 hours of productive work + 30 minutes of entertainment > 3 hours of dull work ทำไม บริษัท ถึงไม่เชื่อเรื่องนี้? อัปเดต:ฉันไม่รู้ว่าทำไมสิ่งนี้จึงถูกปิดเป็นนอกหัวข้อ กรุณาถ้าคุณรู้สึกว่าสิ่งนี้เกี่ยวข้องให้ลงคะแนนเพื่อเปิดใหม่

7
มีข้อโต้แย้งอะไรกับไข่อีสเตอร์ มีข้อโต้แย้งใด ๆ ที่จะสนับสนุนไข่อีสเตอร์หรือไม่? [ปิด]
ฉันเป็นตัวตลกเล็กน้อยดังนั้นความคิดเรื่องไข่อีสเตอร์ยังคงดึงดูดใจฉัน ฉันได้เพิ่มพวกเขาในรหัสของฉันก่อน แต่กลุ่มเพื่อนของฉันมีเรื่องตลกที่ใช้ CTRL-FU เพื่อกระตุ้นไข่ ตอนนี้ฉันยังหวาดระแวงเล็กน้อยเกี่ยวกับประสิทธิภาพดังนั้นฉันชอบลบส่วนเกินเมื่อใดก็ตามที่เป็นไปได้ สิ่งนี้ขัดแย้งอย่างมากกับไข่อีสเตอร์เนื่องจากเป็นรหัสฟุ่มเฟือย 100% มีข้อโต้แย้งอะไรกับไข่อีสเตอร์ นอกจากนี้ยังมีข้อโต้แย้งใด ๆ ที่จะสนับสนุนไข่อีสเตอร์หรือไม่

5
จุดใดที่การอ่านแบบอะซิงโครนัสของดิสก์ I / O มีประสิทธิภาพมากกว่าแบบซิงโครนัส
สมมติว่ามีโค้ดบางส่วนที่อ่านไฟล์สำหรับผู้ใช้หลายคนและไฟล์มีขนาดใดก็ได้: ขนาดใดที่มีประสิทธิภาพมากขึ้นในการอ่านไฟล์แบบอะซิงโครนัส? หรือจะพูดอีกวิธีหนึ่งไฟล์ต้องมีขนาดเล็กแค่ไหนเพื่อให้อ่านได้เร็วขึ้น? ฉันสังเกตเห็น (และบางทีฉันไม่ถูกต้อง) ว่าเมื่ออ่านไฟล์ที่มีขนาดเล็กมากมันใช้เวลานานในการอ่านแบบอะซิงโครนัสมากกว่าแบบซิงโครนัส (โดยเฉพาะกับ. NET) ฉันสมมติว่าสิ่งนี้เกี่ยวข้องกับการตั้งค่าเวลาสำหรับสิ่งต่างๆเช่นพอร์ต I / O Completion Port, เธรดและอื่น ๆ มีกฎง่ายๆที่จะช่วยออกที่นี่? หรือมันขึ้นอยู่กับระบบและสิ่งแวดล้อม?
22 efficiency  async  io 

8
ทำไมการค้นหาแบบไบนารี่ซึ่งต้องการข้อมูลที่เรียงลำดับถือว่าดีกว่าการค้นหาแบบเชิงเส้น
ฉันเคยได้ยินเสมอว่าการค้นหาเชิงเส้นเป็นวิธีที่ไร้เดียงสาและการค้นหาแบบไบนารี่นั้นดีกว่าในด้านประสิทธิภาพเนื่องจากความซับซ้อนเชิงซีมโทติคที่ดีขึ้น แต่ฉันไม่เคยเข้าใจว่าทำไมมันดีกว่าการค้นหาเชิงเส้นเมื่อจำเป็นต้องมีการเรียงลำดับก่อนการค้นหาแบบไบนารี ค้นหาเชิงเส้นและการค้นหาไบนารีO(n) O(log n)นั่นน่าจะเป็นพื้นฐานของการบอกว่าการค้นหาแบบไบนารี่นั้นดีกว่า แต่การค้นหาแบบไบนารี่จำเป็นต้องใช้การเรียงลำดับซึ่งเป็นO(n log n)วิธีที่ดีที่สุด ดังนั้นการค้นหาแบบไบนารี่จึงไม่ควรเร็วขึ้นตามที่ต้องการ ฉันกำลังอ่าน CLRS ซึ่งผู้เขียนบอกเป็นนัยว่าในการเรียงลำดับการแทรกแทนที่จะใช้วิธีการค้นหาเชิงเส้นแบบไร้เดียงสาจะเป็นการดีกว่าถ้าใช้การค้นหาแบบไบนารีในการค้นหาสถานที่ที่จะต้องใส่รายการ ในกรณีนี้สิ่งนี้ดูเหมือนว่าจะเป็นธรรมในการวนซ้ำแต่ละครั้งจะมีรายการเรียงลำดับซึ่งสามารถใช้การค้นหาแบบไบนารีได้ แต่ในกรณีทั่วไปที่ไม่มีการรับประกันเกี่ยวกับชุดข้อมูลที่เราต้องการค้นหาไม่ได้ใช้การค้นหาแบบไบนารีที่แย่กว่าการค้นหาแบบเชิงเส้นเนื่องจากความต้องการในการเรียงลำดับ? มีการพิจารณาในทางปฏิบัติใดบ้างที่ฉันมองเห็นซึ่งทำให้การค้นหาแบบไบนารีดีกว่าการค้นหาแบบเชิงเส้น หรือการค้นหาแบบไบนารี่ถือว่าดีกว่าการค้นหาแบบเชิงเส้นโดยไม่คำนึงถึงเวลาการคำนวณที่จำเป็นสำหรับการเรียงลำดับ?

5
จะทำให้คอมพิวเตอร์ทำงานช้าลง (เพื่อการทดสอบ) ได้อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ในฐานะที่เป็นคนส่วนใหญ่เห็นด้วยการส่งเสริมให้นักพัฒนาที่จะทำให้โค้ดได้อย่างรวดเร็วโดยให้พวกเขามีเครื่องช้าไม่ได้เป็นความคิดที่ดี แต่มีจุดหนึ่งในคำถามนั้น เครื่อง dev ของฉันเร็วและบางครั้งฉันก็เขียนโค้ดที่ไม่มีประสิทธิภาพรบกวน แต่ก็เห็นได้ชัดเมื่อรันบนเครื่องของคนอื่น อะไรคือวิธีที่ดีในการชะลอเครื่อง dev แบบเทอร์โบชาร์จชั่วคราว? แนวคิดของ "ความเร็ว" รวมถึงปัจจัยหลายประการเช่น: ความถี่สัญญาณนาฬิกาของ CPU จำนวนคอร์ CPU จำนวนหน่วยความจำและแคชตัวประมวลผล ความเร็วของรถเมล์ต่างๆ ดิสก์ I / O GPU เป็นต้น
20 efficiency 

7
การเขียนโปรแกรมแบบแยกส่วนมีผลต่อเวลาคำนวณหรือไม่
ทุกคนบอกว่าฉันควรทำให้โค้ดเป็นโมดูล แต่มันไม่ได้มีประสิทธิภาพน้อยกว่าถ้าฉันใช้วิธีการโทรมากกว่าวิธีที่น้อยกว่า แต่มีขนาดใหญ่กว่า ความแตกต่างใน Java, C หรือ C ++ สำหรับเรื่องนั้นคืออะไร? ฉันเข้าใจว่าการแก้ไขอ่านและทำความเข้าใจได้ง่ายขึ้นโดยเฉพาะในกลุ่ม ดังนั้นการสูญเสียเวลาในการคำนวณจึงไม่มีนัยสำคัญเมื่อเทียบกับประโยชน์ความเป็นระเบียบเรียบร้อยของรหัส?
19 java  c++  c  efficiency 

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

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

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