برای اندازه گیری سرعت اجرای یک برنامه از چه معیار یا معیارهایی استفاده میکنن و برای مقایسه سرعت بین دوتا زبان از چه معیاری استفاده میکنند؟
خیلی بستگی به موردی داره که براش می خواین بنچمارک بزنین.
میشه بیشتر توضیح بدید
خوب بهترش اینه که شما بگین هدفتون چیه از اندازه گیری سرعت و برنامه ای که می خواین سرعتش رو بسنجین چه کاری انجام می ده تا موردی صحبت کنیم.
البته سرعت شاید واژه درستی نباشه اینجا
مثلا ببینیم کدوم زبان سرعت اجرای بیشتری داره
مثلا میشه دوتا زبان الگوریتم (bubble sort)روی یک ورودی یکسان انجام بدن و بگیم زبانی که در مدت زمان کمتری این کارو انجام داده سریع تر هستن
شدنش می شه ولی خوب خیلی نمی شه نتایج رو برای کاربرد های دیگه هم تعمیم داد. یه سری زبان ها خوب تابلو هست که پرفرمنس متفاوتی دارن. مثلا شما روبی و C رو بخوای تست کنی مشخص هست که سی سریعتر هست بخواطر اینکه برنامه هاش به کد ماشین کامپایل می شن و اینکه gc نداره و … اما مثلا موردی که شما می گین در مورد زبان هایی که شبیه به هم و تو یه سطح هستند کاربرد داره.
در ضمن شاید شما دنبال این باشی که بخوای یه زبان رو برای پروژه ای انتخاب کنی. یه یادآوری کوچیک اینه که سرعت همیشه فاکتور رده n ام توی انتخاب زبان هست اولویت ها اصلی نباید بر مبنای سرعت باشه
برای مقایسه سرعت دو تا کد زبان ها ابزاری برای microbenchmark دارند که کد در شرایط مختلف تست میکنه
مثلن JMH در جاوا
همونطور که دوستان گفتند روش های مختلفی برای بنچمارک کردن وجود داره، یک قسمتی توی سایت دبین هست به نام Benchmarks Game که زبان های برنامه نویسی رو با روش های مختلف بنچمارک زده و مقایسه کرده، میتونی اطلاعات خوبی از اونجا بدست بیاری.
هر متد یکتوضیح کوتاه هم در صفحه مخصوص خودش داره که خب حتما میتونی هر روشی رو گوگل بکنی و بیشترشون توی ویکیپدیا هم وجود دارند.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/
تو این لینک سایت دبینی که فرستادین وضع php خیلی بهتر از ruby و پایتونه .
روبی در کل از همه زبان ها کند تر بود
توی همه بنچمارک ها زبانایی مثل ارلنگ و کلوژر اعداد فاجعه ای رو نشون میده
قابل استناد نیست کلا بنچ مارکا بخصوص این بنچمارک که کلی یه عددی نوشته هیچ شرایطی براش نگرفته
چرا پایتون رو با نود جی اس مقایسه کرده بودن مگه نود جی اس زبانه؟
چون js انجین های مختلف داره که عملکردشون فرق میکنه
بیشتر هدفم متد های بنچمارک زدن بود، اگر فکر میکنی نتیجه ها درست نیست کد ها رو گذاشته میتونی خودت تست کنی و به ما هم بگی. امیدوارم کد ها درست باشه
ممکنه ورژن های قدیمی روبی باشه که اشکالات پرفرمنس داشتند