สัญชาตญาณของคุณสามารถปรับปรุงได้ตามเวลา ฉันจะโยนมันออกไปอาจจะเป็นข้อโต้แย้งเล็กน้อย แต่ในช่วงหลายปีที่ใช้ VTune และ CodeAnalyst และตอนนี้ CodeXL ฉันจะบอกว่าฉันมีความแม่นยำมากขึ้นในสัญชาตญาณของฉันมากกว่าที่เคยเป็นที่ฮอตสปอต จุดที่ฉันไม่ได้ถูกจับอีกต่อไปเมื่อฉันใส่รหัสบางอย่าง นั่นไม่ได้หมายความว่าฉันพยายามเพิ่มประสิทธิภาพของสิ่งที่สุ่มสี่สุ่มห้า
การทำโปรไฟล์ทำให้การพึ่งพาโปรไฟล์ของฉันเพิ่มขึ้น ฉันแค่บอกว่าฉันสามารถคาดการณ์ได้ง่ายขึ้นว่าผลลัพธ์การทำโปรไฟล์จะมีขอบเขตและยิ่งกว่านั้นกำจัดฮอตสปอตได้สำเร็จและปรับปรุงเวลาที่ใช้ในการดำเนินการของผู้ใช้ให้เสร็จสมบูรณ์โดยไม่ต้องใช้เหล็กแทงตาบอดในความมืด สามารถทำได้แม้กระทั่งเมื่อใช้ตัวสร้างโปรไฟล์จนกว่าคุณจะเริ่มทำความเข้าใจไม่ว่าฮอตสปอตคืออะไร แต่ทำไมพวกเขาถึงเป็นฮอตสปอตที่เกี่ยวข้องกับการพูดแคชที่หายไป)
อย่างไรก็ตามมันไม่ได้จนกว่าฉันจะเริ่มใช้โปรไฟล์ที่ฉันเริ่มปรับปรุงสัญชาตญาณว่า หนึ่งในเหตุผลก็คือเพราะถ้าคุณคุ้นเคยกับรหัสของคุณลางสังหรณ์ของคุณอาจถูกต้องเกี่ยวกับฮอตสปอตที่ใหญ่ที่สุดและชัดเจนที่สุด แต่ไม่ใช่รายละเอียดปลีกย่อยทั้งหมดในระหว่างนั้น โดยธรรมชาติถ้าคุณมีการดำเนินการของผู้ใช้ที่ใช้เวลาหนึ่งชั่วโมงในการทำให้เสร็จสมบูรณ์และมีอัลกอริธึมที่ซับซ้อนสองขั้นตอนที่กำลังประมวลผลอินพุตที่ครอบคลุมองค์ประกอบนับแสนคุณอาจจะออกมาเล่นการพนันมากมาย อัลกอริทึมที่ผิดพลาดที่นี่ แต่นั่นไม่ได้ให้รายละเอียดเชิงลึกใด ๆ กับคุณหรือบอกให้คุณรู้แน่ชัดว่าอะไรคือสาเหตุของเวลา
มีคุณค่ามากมายเมื่อคุณเริ่มทำโปรไฟล์และดูว่าทุกสิ่งที่คุณคิดว่าอาจเป็นผู้มีส่วนร่วมในเวลามากขึ้นนั้นไม่ได้ให้เวลามากนัก ไม่ใช่แหล่งที่มาของความไร้ประสิทธิภาพที่ชัดเจนที่อ้าปากค้าง แต่แหล่งที่คุณสงสัยว่าอาจไม่มีประสิทธิภาพเล็กน้อย แต่หลังจากทำโปรไฟล์แล้วพวกเขาตระหนักว่าพวกเขาแทบจะไม่ได้ให้ความช่วยเหลือใด ๆ ทุกเวลา และนั่นคือสิ่งที่คุณจะได้รับข้อมูลเชิงลึกที่ชาญฉลาดที่สุดคือการพบว่าตัวเองผิดในพื้นที่เล็ก ๆ เหล่านั้นซึ่งไม่ชัดเจนว่าใช้เวลาเท่าไร
สัญชาตญาณของมนุษย์เกินกว่าความซับซ้อนของอัลกอริทึมที่เห็นได้ชัดมักจะเริ่มต้นไม่ถูกต้องเพราะสิ่งที่มีประสิทธิภาพสำหรับเครื่องและสิ่งที่มีประสิทธิภาพสำหรับจิตใจมนุษย์นั้นแตกต่างกันมาก ในตอนแรกมันไม่ได้มาอย่างสังหรณ์ใจที่จะนึกถึงลำดับชั้นของหน่วยความจำตั้งแต่การลงทะเบียนไปยังแคชซีพียูไปจนถึง DRAM ไปยังดิสก์ มันไม่ได้มาอย่างสังหรณ์ใจที่จะคิดว่าเลขคณิตซ้ำซ้อนอาจเร็วกว่าการทำการแยกสาขาหรือการเข้าถึงหน่วยความจำของตารางค้นหาเพื่อข้ามงานประมวลผล เรามักจะคิดในแง่ของจำนวนงานที่ต้องทำขณะที่ลดราคาเช่นค่าใช้จ่ายในการตัดสินใจและโหลดหน่วยความจำและร้านค้า สิ่งที่มีประสิทธิภาพสำหรับฮาร์ดแวร์นั้นมักจะตอบโต้ได้ง่ายในวิธีที่จะทำให้ข้อสันนิษฐานของมนุษย์ของคุณเริ่มต้น
ไหนว่าการปรับปรุงความช่วยเหลือปรีชาสามารถผ่านโปรไฟล์เป็นออกแบบอินเตอร์เฟซ การออกแบบส่วนต่อประสานนั้นมีค่าใช้จ่ายสูงในการเปลี่ยนความเข้าใจย้อนหลังด้วยค่าใช้จ่ายที่เพิ่มขึ้นตามสัดส่วนของจำนวนสถานที่ขึ้นอยู่กับส่วนต่อประสานนั้น เมื่อคุณเริ่มปรับปรุงสัญชาตญาณของคุณคุณสามารถเริ่มต้นการออกแบบอินเตอร์เฟสได้ดีขึ้นเป็นครั้งแรกในวิธีที่ออกจากห้องหายใจเพื่อการปรับให้เหมาะสมที่สุดในอนาคตโดยไม่ต้องเปลี่ยนการออกแบบที่มีราคาแพง อีกครั้งแม้ว่าสัญชาตญาณนั้นเป็นสิ่งที่คุณมักจะพัฒนาและพัฒนาต่อไปเรื่อย ๆ โดยมี profiler นั้นอยู่ในมือเสมอ