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

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

9
วิธีจัดการกับความเข้าใจผิดเกี่ยวกับ“ การปรับให้เหมาะสมก่อนกำหนดเป็นรากของความชั่วทั้งหมด”?
ฉันได้พบกับคนมากมายที่ดื้อรั้นต่อสิ่งใดก็ตามซึ่งถือได้ว่าเป็น "การเพิ่มประสิทธิภาพ" ในความหมายทั่วไปของคำภาษาอังกฤษและพวกเขามักจะพูดคำต่อคำที่อ้างถึง (บางส่วน) "การเพิ่มประสิทธิภาพก่อนกำหนดเป็นรากฐานของความชั่วร้ายทั้งหมด" เป็นข้ออ้างสำหรับท่าทางของพวกเขาหมายความว่าพวกเขาตีความสิ่งที่ฉันกำลังพูดถึงจะเป็น "การเพิ่มประสิทธิภาพก่อนวัยอันควร" อย่างไรก็ตามมุมมองเหล่านี้บางครั้งก็ยึดมั่นอย่างน่าขันที่พวกเขาไม่สนใจความแตกต่างของอัลกอริทึมหรือโครงสร้างข้อมูลใด ๆ จากการดำเนินการ "ไร้เดียงสา" ที่บริสุทธิ์ที่สุด ... หรืออย่างน้อยเบี่ยงเบนจากวิธีที่พวกเขาทำสิ่งต่าง ๆ มาก่อนคนเราจะเข้าหากันเช่นนี้ได้อย่างไรเพื่อทำให้พวกเขา "เปิดหู" อีกครั้งหลังจากพวกเขาปิดตัวลงจากการได้ยินเกี่ยวกับ "ประสิทธิภาพ" หรือ "การเพิ่มประสิทธิภาพ" ฉันจะหารือเกี่ยวกับหัวข้อการออกแบบ / การนำไปใช้งานซึ่งมีผลกระทบต่อประสิทธิภาพโดยไม่ต้องให้ผู้คนคิดในทันทีว่า: "ผู้ชายคนนี้ต้องการใช้เวลาสองสัปดาห์ในรหัสสิบบรรทัด?" ตอนนี้ท่าทางว่า "การเพิ่มประสิทธิภาพทั้งหมดจะคลอดก่อนกำหนดและดังนั้นความชั่วร้าย" หรือไม่ได้รับแล้วครอบคลุมที่นี่เช่นเดียวกับในมุมอื่น ๆ ของเว็บและจะได้รับการกล่าวถึงวิธีการรับรู้เมื่อการเพิ่มประสิทธิภาพการคลอดก่อนกำหนดและดังนั้นจึงชั่วร้ายแต่ โชคไม่ดีที่มีคนในโลกแห่งความเป็นจริงที่ยังไม่เปิดกว้างต่อความท้าทายต่อความเชื่อมั่นในการต่อต้านการเพิ่มประสิทธิภาพ ความพยายามครั้งก่อน สองสามครั้งฉันได้ลองเสนอราคาที่สมบูรณ์จาก Donald Knuthเพื่ออธิบายว่า "การปรับให้เหมาะสมก่อนกำหนดไม่ดี" ↛ "การเพิ่มประสิทธิภาพทั้งหมดไม่ดี": เราควรลืมเกี่ยวกับประสิทธิภาพเล็กน้อยพูดถึง 97% ของเวลา: การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากฐานของความชั่วร้ายทั้งหมด แต่เราไม่ควรพลาดโอกาสที่สำคัญ 3% อย่างไรก็ตามเมื่อมีการเสนอราคาทั้งหมดบางครั้งคนเหล่านี้จะมีความมั่นใจมากขึ้นว่าสิ่งที่ฉันทำคือการเพิ่มประสิทธิภาพก่อนวัยอันควรและขุดและปฏิเสธที่จะฟัง เกือบจะเหมือนกับว่าคำว่า "การปรับให้เหมาะสม" ทำให้พวกเขากลัว: ในสองสามครั้งที่ฉันสามารถเสนอการเปลี่ยนแปลงที่เกิดขึ้นจริงในการปรับปรุงโค้ดโดยที่พวกเขาถูกคัดค้านโดยเพียงแค่หลีกเลี่ยงการใช้คำว่า "optimiz …

2
คุณลักษณะความหมายของ Python (และภาษาไดนามิกอื่น ๆ ) มีส่วนทำให้ความช้าของมันคืออะไร?
ฉันไม่รู้จัก Python มาก ฉันพยายามที่จะเข้าใจอย่างแม่นยำมากขึ้นว่าคุณลักษณะที่แน่นอนของภาษาแบบไดนามิก (à la Python, Lua, Scheme, Perl, Ruby, .... ) กำลังบังคับให้การใช้งานของพวกเขาช้า ในกรณีนี้ Lua 5.3 เครื่องจักร metatableจะทำให้ Lua ค่อนข้างสังหรณ์ใจ แต่ในทางปฏิบัติ Lua มีข่าวลือว่าค่อนข้างเร็ว (และเร็วกว่า Python) นอกจากนี้ผมมีสัญชาตญาณ (อาจจะผิดอย่างใดอย่างหนึ่ง) ว่าตั้งแต่โปรเซสเซอร์ปัจจุบันหน่วยความจำได้ช้ากว่าการคำนวณดิบ (เข้าถึงหน่วยความจำแคชพลาดความต้องการในเวลาเดียวกันเป็นหลายร้อยดำเนินการทางคณิตศาสตร์), พิมพ์แบบไดนามิกการตรวจสอบ (เมนูif (value->type != INTEGER_TAG) return;ใน C parlance) สามารถวิ่งได้ค่อนข้างเร็ว แน่นอนว่าการวิเคราะห์โปรแกรมทั้งหมด (เช่นการดำเนินการตามโครงการของสตาลิน ) สามารถทำให้การใช้ภาษาแบบไดนามิกเป็นนักแปลทำงานได้อย่างรวดเร็ว แต่ลองทำเป็นว่าฉันไม่มีเวลาออกแบบตัววิเคราะห์โปรแกรมทั้งหมดในตอนแรก (ฉันกำลังออกแบบภาษาไดนามิกในจอภาพ MELTของฉันและบางส่วนจะถูกแปลเป็น C)

5
เข้าถึงฐานข้อมูลหลายตัวหรือเข้าถึงได้หนึ่งครั้งหรือไม่
เป็นวิธีที่ดีกว่าเมื่อมันมาถึงประสิทธิภาพและการใช้ทรัพยากรที่ดีที่สุดคือ: การเข้าถึงฐานข้อมูลหลายครั้งผ่าน AJAX เพื่อรับข้อมูลที่แน่นอนที่จำเป็นเมื่อมีความจำเป็นหรือทำการเข้าถึงเพียงครั้งเดียวเพื่อดึงวัตถุที่เก็บข้อมูลทั้งหมดที่อาจจำเป็น ด้วยความน่าจะเป็นสูงที่ไม่จำเป็นต้องใช้ทั้งหมดจริง ๆ ? ฉันรู้วิธีการเปรียบเทียบข้อความค้นหาจริง แต่ฉันไม่รู้วิธีทดสอบสิ่งที่ดีที่สุดเมื่อพูดถึงประสิทธิภาพของฐานข้อมูลเมื่อผู้ใช้หลายพันรายกำลังเข้าถึงฐานข้อมูลพร้อมกันและวิธีการรวมการเชื่อมต่อเข้ามาเล่น
25 performance  sql 

6
ทำไมทีมที่ LMAX ใช้จาวาและออกแบบสถาปัตยกรรมเพื่อหลีกเลี่ยง GC ในทุกกรณี?
ทำไมทีมที่ LMAX จึงออกแบบLMAX Disruptorใน Java แต่ทุกจุดของการออกแบบเพื่อลดการใช้งาน GC หากไม่มีใครต้องการให้ GC ทำงานแล้วทำไมต้องใช้ภาษาที่รวบรวมขยะ? การเพิ่มประสิทธิภาพระดับความรู้ด้านฮาร์ดแวร์และความคิดของพวกเขานั้นยอดเยี่ยม แต่ทำไม Java ฉันไม่ได้ต่อต้าน Java หรืออะไร แต่ทำไมเป็นภาษา GC ทำไมไม่ใช้สิ่งที่ต้องการ D หรือภาษาอื่นที่ไม่มี GC แต่ให้โค้ดที่มีประสิทธิภาพ? เป็นทีมที่คุ้นเคยกับ Java มากที่สุดหรือ Java นั้นมีข้อได้เปรียบที่ไม่เหมือนใครหรือไม่? สมมติว่าพวกเขาพัฒนาโดยใช้ D พร้อมการจัดการหน่วยความจำด้วยตนเองสิ่งที่แตกต่างกันคืออะไร พวกเขาจะต้องคิดในระดับต่ำ (ซึ่งพวกเขาเป็นอยู่แล้ว) แต่พวกเขาสามารถบีบประสิทธิภาพที่ดีที่สุดออกมาจากระบบเหมือนเป็นเจ้าของภาษา

4
Data Oriented Design - ทำไม่ได้กับสมาชิกมากกว่า 1-2 โครงสร้าง?
ตัวอย่างปกติของ Data Oriented Design ที่มีโครงสร้าง Ball: struct Ball { float Radius; float XYZ[3]; }; แล้วพวกเขาก็สร้างอัลกอริทึมที่วนซ้ำstd::vector<Ball>เวกเตอร์ จากนั้นพวกเขาก็ให้สิ่งเดียวกัน แต่นำไปใช้ใน Data Oriented Design: struct Balls { std::vector<float> Radiuses; std::vector<XYZ[3]> XYZs; }; ซึ่งเป็นสิ่งที่ดีและทั้งหมดถ้าคุณจะทำซ้ำรัศมีทั้งหมดก่อนอื่นจากนั้นทุกตำแหน่งและอื่น ๆ อย่างไรก็ตามคุณจะย้ายลูกบอลในเวกเตอร์ได้อย่างไร ในรุ่นเดิมหากคุณมีstd::vector<Ball> BallsAllคุณก็สามารถย้ายใดๆBallsAll[x]BallsAll[y] อย่างไรก็ตามในการทำเช่นนั้นสำหรับ Data Oriented เวอร์ชั่นคุณต้องทำสิ่งเดียวกันสำหรับทุก ๆ คุณสมบัติ (2 ครั้งในกรณีของ Ball - radius and position) แต่มันจะแย่ลงถ้าคุณมีคุณสมบัติมากขึ้น คุณจะต้องเก็บดัชนีสำหรับ "ลูกบอล" แต่ละลูกและเมื่อคุณพยายามที่จะย้ายไปรอบ …

4
มันแย่แค่ไหนที่เรียก println () บ่อยครั้งกว่าการต่อสตริงเข้าด้วยกันและเรียกมันครั้งเดียว?
คำถามนี้ถูกโยกย้ายจาก Code Exchange Stack Stack เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 5 ปีที่ผ่านมา ฉันรู้ว่าผลลัพธ์ไปยังคอนโซลเป็นการดำเนินการที่มีราคาแพง ในความสนใจของการอ่านรหัสบางครั้งมันก็ดีที่จะเรียกฟังก์ชั่นเพื่อส่งออกข้อความสองครั้งแทนที่จะมีสตริงข้อความยาวเป็นอาร์กิวเมนต์ ตัวอย่างเช่นมีประสิทธิภาพน้อยกว่าที่จะมี System.out.println("Good morning."); System.out.println("Please enter your name"); เมื่อเทียบกับ System.out.println("Good morning.\nPlease enter your name"); ในตัวอย่างความแตกต่างเป็นเพียงการโทรหนึ่งครั้งprintln()แต่จะเกิดอะไรขึ้นถ้ามีมากกว่านั้น ในหมายเหตุที่เกี่ยวข้องคำแถลงเกี่ยวกับการพิมพ์ข้อความอาจดูแปลกในขณะที่ดูซอร์สโค้ดหากข้อความที่จะพิมพ์ยาว ถ้าตัวอักษรไม่สามารถทำให้สั้นลงได้สิ่งที่สามารถทำได้? ควรเป็นกรณีที่มีการprintln()โทรหลายสายหรือไม่? มีคนเคยบอกฉันว่าบรรทัดของรหัสไม่ควรเกิน 80 อักขระ (IIRC) ดังนั้นคุณจะทำอย่างไร System.out.println("Good morning everyone. I am here today to present you with a very, …
23 java  c++  performance  c  io 

4
จะปรับปรุงประสิทธิภาพของ Java ได้อย่างไร?
ทีมมากกว่าที่ LMAX มีการนำเสนอเกี่ยวกับวิธีการที่พวกเขาสามารถที่จะทำ100k TPS ที่น้อยกว่า 1 มิลลิวินาทีแฝง พวกเขาได้รับการสนับสนุนขึ้นนำเสนอที่มีบล็อก , กระดาษทางเทคนิค (PDF)และรหัสที่มาของตัวเอง เมื่อเร็ว ๆ นี้มาร์ตินฟาวเลอร์ได้ตีพิมพ์บทความที่ยอดเยี่ยมเกี่ยวกับสถาปัตยกรรม LMAXและระบุว่าตอนนี้พวกเขาสามารถจัดการคำสั่งได้หกล้านคำสั่งต่อวินาทีและเน้นขั้นตอนบางอย่างที่ทีมทำเพื่อเพิ่มขนาดของประสิทธิภาพ จนถึงตอนนี้ฉันได้อธิบายแล้วว่ากุญแจสู่ความเร็วของ Business Logic Processor กำลังทำทุกอย่างตามลำดับในหน่วยความจำ เพียงแค่ทำสิ่งนี้ (และไม่มีอะไรโง่จริงๆ) ให้นักพัฒนาสามารถเขียนโค้ดที่สามารถประมวลผล 10K TPS จากนั้นพวกเขาพบว่าการมุ่งเน้นไปที่องค์ประกอบง่ายๆของรหัสที่ดีสามารถนำสิ่งนี้มาสู่ช่วง 100K TPS สิ่งนี้ต้องการเพียงรหัสที่ได้รับการรับรองและวิธีการเล็ก ๆ เท่านั้นซึ่งสิ่งนี้จะช่วยให้ฮอตสปอตทำงานได้ดีขึ้นในการเพิ่มประสิทธิภาพและเพื่อให้ซีพียูมีประสิทธิภาพมากขึ้นในการแคชโค้ดขณะที่ทำงานอยู่ ความฉลาดเพิ่มขึ้นอีกเล็กน้อยเพื่อให้ได้ลำดับความสำคัญมากขึ้น มีหลายสิ่งที่ทีม LMAX พบว่าเป็นประโยชน์ในการเดินทาง หนึ่งคือการเขียนการใช้งานที่กำหนดเองของคอลเลกชัน Java ที่ได้รับการออกแบบให้เป็นมิตรกับแคชและระมัดระวังกับขยะ อีกเทคนิคในการเข้าถึงระดับสูงสุดของประสิทธิภาพคือให้ความสนใจในการทดสอบประสิทธิภาพ ฉันสังเกตเห็นมานานแล้วว่าผู้คนพูดถึงเทคนิคต่าง ๆ มากมายเพื่อปรับปรุงประสิทธิภาพ แต่สิ่งหนึ่งที่สร้างความแตกต่างได้จริงๆคือการทดสอบ ฟาวเลอร์กล่าวว่ามีหลายสิ่งที่พบ แต่เขาพูดถึงเพียงคู่ มีสถาปัตยกรรมห้องสมุดเทคนิคหรือ "สิ่ง" อื่น ๆ ที่มีประโยชน์ในการเข้าถึงระดับประสิทธิภาพดังกล่าวหรือไม่

7
ซอฟแวร์เน่าหมายถึงประสิทธิภาพหลักหรือรหัสยุ่ง?
คำนิยามของวิกิพีเดียของเน่าซอฟแวร์มุ่งเน้นไปที่ประสิทธิภาพการทำงานของซอฟแวร์ นี่คือการใช้งานที่แตกต่างจากที่ฉันคุ้นเคย ฉันคิดถึงมันมากขึ้นในแง่ของความสะอาดและการออกแบบของรหัส - ในแง่ของรหัสที่มีคุณสมบัติคุณภาพมาตรฐานทั้งหมด: ความสามารถในการอ่านการบำรุงรักษา ฯลฯ ตอนนี้ประสิทธิภาพน่าจะลดลงเมื่อรหัสไม่สามารถอ่านได้ เพราะไม่มีใครรู้ว่าเกิดอะไรขึ้น แต่คำว่าซอฟต์แวร์เน่ามีการอ้างอิงพิเศษกับประสิทธิภาพ หรือฉันคิดถูกว่าหมายถึงความสะอาดของรหัส? หรือนี่อาจเป็นกรณีของความรู้สึกหลาย ๆ แง่ของการใช้งานทั่วไป - จากมุมมองของผู้ใช้มันมีส่วนเกี่ยวข้องกับประสิทธิภาพ แต่สำหรับช่างฝีมือซอฟต์แวร์นั้นจะต้องทำเฉพาะเจาะจงมากขึ้นกับวิธีการอ่านรหัส?

10
ฉันจะหลีกเลี่ยง“ ปรีชาการเพิ่มประสิทธิภาพที่ไม่ดีของนักพัฒนา” ได้อย่างไร
ฉันเห็นบทความที่เขียนข้อความนี้: นักพัฒนาซอฟต์แวร์ชอบที่จะเพิ่มประสิทธิภาพรหัสและด้วยเหตุผลที่ดี เป็นที่น่าพอใจและสนุกมาก แต่การรู้ว่าเมื่อใดเมื่อต้องปรับให้เหมาะสมนั้นสำคัญยิ่งกว่า น่าเสียดายที่นักพัฒนามักมีสัญชาตญาณที่น่ากลัวว่าปัญหาด้านประสิทธิภาพของแอปพลิเคชันจะเป็นอย่างไร นักพัฒนาจะหลีกเลี่ยงสัญชาตญาณที่ไม่ดีนี้ได้อย่างไร มีเครื่องมือที่ดีในการค้นหาว่าส่วนใดของรหัสของคุณต้องการการปรับให้เหมาะสมที่สุด (สำหรับ Java)? คุณรู้บทความบทความเคล็ดลับหรือการอ่านที่ดีในเรื่องนี้หรือไม่?
22 java  performance 

11
ในบางครั้งรหัสแฝงต่ำต้อง“ น่าเกลียด” หรือไม่
(นี่คือจุดมุ่งหมายหลักที่ผู้ที่มีความรู้เฉพาะเกี่ยวกับระบบเวลาแฝงต่ำเพื่อหลีกเลี่ยงคนที่เพิ่งตอบด้วยความคิดเห็นที่ไม่พร้อมเพรียง) คุณรู้สึกว่ามีการแลกเปลี่ยนระหว่างการเขียนโค้ด "ดี" ของโอเรียนท์กับการเขียนโค้ดเวลาแฝงที่ต่ำมาก ๆ หรือไม่? ตัวอย่างเช่นการหลีกเลี่ยงฟังก์ชั่นเสมือนจริงใน C ++ / ค่าโสหุ้ยของ polymorphism เป็นต้นการเขียนโค้ดที่ดูน่ารังเกียจ แต่มันเร็วมากหรือเปล่า? มันยืนอยู่กับเหตุผล - ใครสนใจว่ามันดูน่าเกลียด (ตราบใดที่มันบำรุงรักษาได้) - ถ้าคุณต้องการความเร็วคุณต้องการความเร็ว ฉันจะสนใจที่จะได้ยินจากคนที่ทำงานในพื้นที่ดังกล่าว
21 java  c++  c  performance  latency 

16
คุณใช้เทคนิคง่ายๆอะไรในการปรับปรุงประสิทธิภาพ
ฉันกำลังพูดถึงวิธีที่เราเขียนกิจวัตรง่าย ๆ เพื่อปรับปรุงประสิทธิภาพโดยไม่ทำให้โค้ดของคุณอ่านยากขึ้นตัวอย่างเช่นนี่เป็นเรื่องปกติสำหรับเราที่ได้เรียนรู้: for(int i = 0; i < collection.length(); i++ ){ // stuff here } แต่ฉันมักจะทำสิ่งนี้เมื่อforeachไม่สามารถใช้ได้: for(int i = 0, j = collection.length(); i < j; i++ ){ // stuff here } ฉันคิดว่านี่เป็นวิธีที่ดีกว่าเพราะจะเรียกlengthวิธีการนี้เพียงครั้งเดียว ... แฟนของฉันบอกว่ามันเป็นความลับ มีเคล็ดลับง่าย ๆ ที่คุณใช้ในการพัฒนาของคุณเอง?

6
โดยทั่วไปแล้วควรใช้ฟังก์ชั่นเสมือนเพื่อหลีกเลี่ยงการแตกแขนงหรือไม่?
ดูเหมือนว่าจะมีคำสั่งที่เทียบเท่ากันอย่างคร่าว ๆ เพื่อแบ่งให้เท่ากันกับค่าใช้จ่ายของฟังก์ชั่นเสมือนสาขาพลาดมีการแลกเปลี่ยนที่คล้ายกัน: การเรียนการสอนเทียบกับแคชข้อมูลพลาด อุปสรรคการเพิ่มประสิทธิภาพ ถ้าคุณมองสิ่งที่ชอบ: if (x==1) { p->do1(); } else if (x==2) { p->do2(); } else if (x==3) { p->do3(); } ... คุณอาจมีฟังก์ชั่นสมาชิกอาร์เรย์หรือถ้ามีหลายฟังก์ชั่นขึ้นอยู่กับการจัดหมวดหมู่เดียวกันหรือมีการจัดหมวดหมู่ที่ซับซ้อนมากขึ้นให้ใช้ฟังก์ชั่นเสมือน: p->do() แต่โดยทั่วไปว่าราคาแพงมีหน้าที่เสมือน VS แตกแขนงมันเป็นเรื่องยากที่จะทดสอบบนแพลตฟอร์มพอที่จะพูดคุยเพื่อให้ผมสงสัยว่าถ้าคนใดคนหนึ่งมีกฎหยาบของนิ้วหัวแม่มือ (น่ารักถ้ามันเป็นง่ายๆเป็น 4 ifคือเบรกพอยต์) โดยทั่วไปแล้วฟังก์ชั่นเสมือนจะชัดเจนกว่าและฉันก็จะเอนไปทางพวกเขา แต่ฉันมีหลายส่วนที่สำคัญมากซึ่งฉันสามารถเปลี่ยนรหัสจากฟังก์ชั่นเสมือนเป็นสาขาได้ ฉันต้องการที่จะมีความคิดเกี่ยวกับเรื่องนี้ก่อนที่จะดำเนินการนี้ (ไม่ใช่การเปลี่ยนแปลงเล็กน้อยหรือง่ายต่อการทดสอบในหลาย ๆ แพลตฟอร์ม)
21 c++  performance 

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

2
ฉันจะแยกส่วนติดต่อผู้ใช้ออกจากตรรกะทางธุรกิจในขณะที่ยังคงรักษาประสิทธิภาพได้อย่างไร
สมมติว่าฉันต้องการที่จะแสดงรูปแบบที่แสดงถึง 10 วัตถุที่แตกต่างกันใน combobox ตัวอย่างเช่นฉันต้องการให้ผู้ใช้เลือกหนึ่งแฮมเบอร์เกอร์จาก 10 เมนูที่มีมะเขือเทศ เนื่องจากฉันต้องการแยก UI และตรรกะฉันจะต้องผ่านแบบฟอร์มการเป็นตัวแทนสตริงของแฮมเบอร์เกอร์เพื่อแสดงบน Combobox มิฉะนั้น UI จะต้องขุดลงในช่องวัตถุ จากนั้นผู้ใช้จะเลือกแฮมเบอร์เกอร์จากคอมโบบ็อกซ์แล้วส่งกลับไปที่คอนโทรลเลอร์ ตอนนี้ผู้ควบคุมจะต้องหาแฮมเบอร์เกอร์อีกครั้งโดยอ้างอิงจากการแทนค่าสตริงที่ใช้โดยแบบฟอร์ม (อาจเป็น ID?) มันไม่มีประสิทธิภาพอย่างไม่น่าเชื่อใช่หรือไม่? คุณมีวัตถุที่คุณต้องการเลือกแล้ว หากคุณส่งแบบฟอร์มไปยังวัตถุทั้งหมดแล้วส่งคืนวัตถุเฉพาะคุณจะไม่ต้อง refind อีกครั้งในภายหลังเนื่องจากแบบฟอร์มส่งคืนการอ้างอิงไปยังวัตถุนั้นแล้ว ยิ่งกว่านั้นถ้าฉันผิดและคุณควรส่งวัตถุทั้งหมดไปยังแบบฟอร์มฉันจะแยก UI ออกจากตรรกะได้อย่างไร

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

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