ฉันคิดว่ามันขึ้นอยู่กับภาษาและฟังก์ชั่น ในขณะที่คอมไพเลอร์ c และ c ++ สามารถอินไลน์ฟังก์ชั่นได้มากมาย แต่นี่ไม่ใช่กรณีของ Python หรือ Java
ในขณะที่ฉันไม่ทราบรายละเอียดเฉพาะสำหรับ java (ยกเว้นว่าทุกวิธีเป็นเสมือน แต่ฉันขอแนะนำให้คุณตรวจสอบเอกสารที่ดีกว่า) ใน Python ฉันแน่ใจว่าไม่มี inlining ไม่มีการเพิ่มประสิทธิภาพการเรียกซ้ำหางและการเรียกใช้ฟังก์ชันค่อนข้างแพง
ฟังก์ชั่น Python เป็นวัตถุที่ปฏิบัติการได้ (และ infact คุณยังสามารถกำหนดcall () วิธีการเพื่อให้วัตถุเช่นฟังก์ชั่น) ซึ่งหมายความว่ามีค่าใช้จ่ายค่อนข้างมากในการเรียกพวกเขา ...
แต่
เมื่อคุณกำหนดตัวแปรภายในฟังก์ชั่นล่ามจะใช้ LOADFAST แทนคำสั่ง LOAD ปกติในโหมดไบต์ทำให้โค้ดของคุณเร็วขึ้น ...
อีกสิ่งหนึ่งคือเมื่อคุณกำหนดวัตถุที่เรียกได้รูปแบบเช่นการบันทึกช่วยจำนั้นเป็นไปได้และพวกเขาสามารถเพิ่มความเร็วในการคำนวณของคุณได้อย่างมีประสิทธิภาพมากขึ้น โดยทั่วไปจะเป็นการแลกเปลี่ยน ค่าใช้จ่ายในการเรียกใช้ฟังก์ชั่นยังขึ้นอยู่กับพารามิเตอร์ด้วยเพราะมันจะกำหนดว่าคุณต้องคัดลอกจำนวนเท่าใดบนสแต็ก (เช่นใน c / c ++ มันเป็นเรื่องธรรมดาที่จะส่งพารามิเตอร์ขนาดใหญ่เช่นโครงสร้างโดยพอยน์เตอร์ / อ้างอิงแทนค่า)
ฉันคิดว่าคำถามของคุณในทางปฏิบัตินั้นกว้างเกินไปที่จะตอบอย่างสมบูรณ์ใน stackexchange
สิ่งที่ฉันแนะนำให้คุณทำคือเริ่มต้นด้วยภาษาเดียวและศึกษาเอกสารขั้นสูงเพื่อทำความเข้าใจว่าการใช้ฟังก์ชั่นการโทรนั้นดำเนินการโดยภาษานั้น ๆ ได้อย่างไร
คุณจะประหลาดใจกับจำนวนสิ่งที่คุณจะเรียนรู้ในกระบวนการนี้
หากคุณมีปัญหาที่เฉพาะเจาะจงทำการวัด / ทำโปรไฟล์และตัดสินใจเกี่ยวกับสภาพอากาศมันจะดีกว่าที่จะสร้างฟังก์ชั่นหรือคัดลอก / วางรหัสที่เทียบเท่า
หากคุณถามคำถามที่เฉพาะเจาะจงมากขึ้นฉันจะได้รับคำตอบที่เจาะจงยิ่งขึ้น