سلام به همه
من امروز یه سایت و دیدم که یک کد اسمبلی و با c++ از نظر سرعت مقایسه کرده بود
و دو کدی که کار یکسانی و انجام میدن .
و کد اسمبلی با اسمبلر nasm
و c++ با کامپایلر ++g
و من دیدم که سی پلاس پلاس سریع تر از اسمبلی بود (حدود یک ثانیه)
و خب اسمبلی بعد از زبون ماشین نزدیک ترین زبون به سخت افزار هست و از c++ و c سطح پایین تره
و من انتظار داشتم که اسمبلی سریع تر باشه پس چرا نیست🤔🤔 اگه کسی از دوستان میدونه چرا و چطور c++ سریع تر هست ؟؟
ممنون میشم که منم راهنمایی کنه .
🙏
سلام
سرعت صرفا به زبان بستگی نداره، به الگوریتمی که نوشته شده و همچنین بهینگی کد بستگی داره
یه الگوریتم بد با اسمبلی میتونه هزاران برابر کند تر از یه الگوریتم خوب با یه زبان کند مثل روبی باشه
@saman1111
سلام بله درسته
ولی هر دو کد بهینه بودن و چندین بار اصلاح شده بود .
ولی سرعت c++ همچنان بیشتر بود.
شاید پاسخ شما همینجا باشد
کد کامپایل شده ی c++ رو مقایسه کن.
بعضی از کامپایلر ها این قابلیت رو دارن که result یه مجموعه محاسبه رو به جای اون محاسبه قرار بدن و با دستکاری خروجی اون رو بهینه کنن. یک روند پیشبینی نتیجه دارن که نتیجه رو پیش بینی میکنه و باعث میشه پردازش کمتری انجام بشه.
مثلا کامپایلر rust این قابلیت رو داره. راجب c++ اطلاع ندادم.
نکته ی دیگه ای که باید در نظر بگیرید میزان استفاده از memory هم مهمه. ساختار هایی وجود دارن که سرعت پردازش بالایی دارن اما میزان استفاده از memory اونا بیشتره.