GHC คาดว่าจะสามารถเพิ่มประสิทธิภาพการทำงานได้อย่างน่าเชื่อถือ?
GHC มีการปรับแต่งมากมายที่สามารถทำงานได้ แต่ฉันไม่รู้ว่าพวกเขาทั้งหมดคืออะไรและมีแนวโน้มว่าจะต้องดำเนินการอย่างไรและอยู่ภายใต้สถานการณ์ใด คำถามของฉันคืออะไรฉันสามารถคาดหวังการเปลี่ยนแปลงอะไรที่จะนำไปใช้ทุกครั้งหรือเกือบจะเป็นเช่นนั้น? ถ้าฉันดูรหัสที่จะถูกดำเนินการ (ประเมิน) บ่อยครั้งและความคิดแรกของฉันคือ "hmm บางทีฉันควรปรับให้เหมาะสม" ซึ่งในกรณีนี้ความคิดที่สองของฉันควรเป็น "ไม่ต้องคิดเลย GHC ได้รับสิ่งนี้ "? ฉันกำลังอ่านStream Stream Fusionของกระดาษ: จากรายการไปจนถึงสตรีมไปยังไม่มีอะไรเลยและเทคนิคที่พวกเขาใช้ในการเขียนรายการประมวลผลในรูปแบบอื่นซึ่งการปรับตามปกติของ GHC จะเพิ่มประสิทธิภาพลงในลูปแบบง่าย ๆ ฉันจะบอกได้อย่างไรว่าโปรแกรมของฉันมีสิทธิ์ได้รับการเพิ่มประสิทธิภาพแบบนั้น? มีข้อมูลบางอย่างในคู่มือ GHC แต่มีเพียงบางส่วนที่จะตอบคำถาม แก้ไข: ฉันเริ่มได้รับรางวัล สิ่งที่ฉันต้องการคือรายการของการแปลงระดับล่างเช่นแลมบ์ดา / เคส / กรณีลอย, พิเศษ / ประเภทคอนสตรัค / ฟังก์ชั่นการโต้แย้งการวิเคราะห์ความเข้มงวดและ unboxing, คนงาน / ห่อหุ้มและสิ่งอื่น ๆ ที่สำคัญ GHC พร้อมด้วยคำอธิบายและตัวอย่างของอินพุตและเอาต์พุตโค้ดและภาพประกอบที่สมบูรณ์แบบของสถานการณ์เมื่อเอฟเฟกต์ทั้งหมดมากกว่าผลรวมของส่วนต่างๆ และเป็นที่กล่าวถึงเมื่อการเปลี่ยนแปลงไม่ได้ผลเกิดขึ้น ฉันไม่ได้คาดหวังว่าคำอธิบายที่มีความยาวนวนิยายของการเปลี่ยนแปลงทุกอย่างสองสามประโยคและตัวอย่างโค้ดอินไลน์ซับหนึ่งอาจเพียงพอ ชัดเจนในตอนท้ายของมัน ฉันต้องการที่จะดูรหัสและสามารถคาดเดาได้ดีว่ามันจะรวบรวมเป็นวงแคบหรือไม่หรือทำไมไม่หรือสิ่งที่ฉันจะต้องเปลี่ยนเพื่อให้ได้ (ฉันไม่สนใจมากที่นี่ในกรอบการเพิ่มประสิทธิภาพขนาดใหญ่เช่นการหลอมกระแส …