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

3
เมื่อใดที่ฉันควรใช้ autoload แทนที่จะต้องการ?
จากสิ่งที่ฉันเข้าใจrequireใช้เพื่อโหลดโค้ดขนาดใหญ่ (บางอย่างเช่นโมดูล) ถึงแม้ว่ามันจะสามารถโหลดฟังก์ชั่นแต่ละอย่างได้ Autoload ในอีกด้านหนึ่งเท่านั้นจะลงทะเบียนฟังก์ชั่นและป้องกันการโหลดไปยังเวลาดำเนินการเท่านั้น ฉันเพิ่งอ่านบทความที่สนับสนุนการใช้งานautoloadเฉพาะ ดีautoloadกว่าrequireไหม? กรณีการใช้งานทั่วไปของแต่ละกรณีมีอะไรบ้าง

2
ฉันจะปรับปรุงเวลาเริ่มต้นได้อย่างไรแม้จะมีหลายแพ็คเกจ
TL; DRฉันมีแพคเกจจำนวนมากเช่นนี้ซึ่งทำให้เจ็บเวลาเริ่มต้นของฉัน หากคุณไม่เชื่อว่าเป็นเช่นนั้นอ่านต่อ เวลาเริ่มต้น Emacs ของฉันค่อนข้างเล็ก ฉันไม่ได้ใช้use-packageฉันเพิ่งตั้ง hooks และautoloads หลาย ๆ ตัวเพื่อให้โค้ดเกือบทั้งหมดถูกเลื่อนออกไป ในความเป็นจริงสิ่งต่าง ๆ ถูกโหลดโดยปกติแล้วจะน้อยกว่าครึ่งวินาทีแม้ว่ามันจะดูเหมือนเป็นบ้าก็ตาม แต่เมื่อเวลาผ่านไปผมสังเกตเห็นว่าเวลาเริ่มต้นของฉันได้รับพิถีพิถันช้าลงอย่างลึกลับ สิ่งนี้ได้มาถึงจุดที่เวลาเริ่มต้นคือ≥ 1 วินาที ในที่สุดฉันก็มีเพียงพอและขุดลงไปในรากของปัญหา ในที่สุดฉันก็แสดงความคิดเห็น~/.emacsไฟล์ทั้งหมดของฉันและพบว่าเวลาเริ่มต้นยังคงเป็น≥ 1 วินาที อันที่จริงแล้วมันก็แค่โกนออก ~ 0.2วินาทีบางครั้งก็น้อยลง จากนั้นฉันลองemacs -qและพบว่าเวลาเริ่มต้นคือ ~ 0.1วินาที จากการตรวจสอบในส่วนของคู่มือ Elisp นี้ฉันพบว่าทำไมemacs -qลดเวลาในการเริ่มต้นให้มาก เห็นได้ชัดว่าemacs -qหยุด Emacs จากการทำสามสิ่งเมื่อเริ่มต้น: โหลดไฟล์ init ของคุณ กำลังโหลดdefault.elไฟล์ของคุณ โทร package-initialize เราได้ตัดออกไฟล์ init ของฉันแล้วเนื่องจากการแสดงความคิดเห็นทั้งหมดของฉัน~/.emacsไม่ได้ทำอะไรเลย ฉันไม่ได้ใช้default.elไฟล์เพื่อตัดออกไป ซึ่งปล่อยpackage-initializeให้เป็นผู้กระทำความผิดสำหรับการแสดงยอดฮิต เหตุใดจึงpackage-initializeต้องสละเวลาเริ่มต้นมาก …

3
จะสร้างและเปิดใช้งาน autoloads สำหรับแพ็คเกจท้องถิ่นได้อย่างไร
เป็นที่ชัดเจนว่าแพคเกจท้องถิ่น / กำหนดเอง / ส่วนบุคคลไม่ควรมีการเปิดตัวอย่างเป็นทางการและมันจะโง่หากได้รับประโยชน์จากการสนับสนุนการจัดการแพคเกจในตัว ฉันสงสัยว่าจะสร้างและเปิดใช้งาน autoloads สำหรับแพ็คเกจท้องถิ่นได้อย่างไร ซึ่งคล้ายกับpackage.elแพคเกจที่ติดตั้งจาก ELPA เพื่อหลีกเลี่ยงการสร้างล้อใหม่มีวิธีที่จะ "เสแสร้ง" ที่ไดเรกทอรีท้องถิ่นบางรายการ (ที่มีไดเรกทอรีย่อยแต่ละแห่งซึ่งเป็นแพคเกจท้องถิ่น / กำหนดเอง / ส่วนตัว) เป็น ELPA หรือไม่ ฉันยังเปิดให้el-getหากสถานการณ์ดังกล่าวสามารถได้รับการสนับสนุนผ่านเช่นสูตรอาหารที่กำหนดเอง ฉันแน่ใจว่างานนั้นค่อนข้างธรรมดาและใครก็ตามที่ใช้ Emac ในระดับสูงก็มาถึงจุดนั้นไม่ช้าก็เร็ว ใครช่วยแบ่งปันประสบการณ์ของพวกเขาในสาขานี้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.