انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: taha11111 در 19 تیر 1394، 06:58 ب‌ظ

عنوان: چرا سرعت سی از سی پلاس پلاس بیشتره
ارسال شده توسط: taha11111 در 19 تیر 1394، 06:58 ب‌ظ
سلام. چرا وقتی دو تا برنامه یکسان رو تو شرایط یکسان ( مثل هر دو ساخت یافته باشند و هر دو از یک الگوریتم استفاده کنند و ...) با زبون های سی و سی پلاس پیاده سازی میکنیم باز هم برنامه نوشته شده با سی از سی پلاس سریع تره ؟ مگه سی پلاس پلاس به غیر از شئ گرایی ، چه ویژگی های اضافه ای رو داره که کامپایلر مجبور میشه کد پیچیده تری رو تولید کنه که بخاطر همین سرعتش از سی کم تر میشه؟؟؟؟؟
عنوان: پاسخ : چرا سرعت سی از سی پلاس پلاس بیشتره
ارسال شده توسط: alireza.crs در 19 تیر 1394، 08:33 ب‌ظ
سلام. چرا وقتی دو تا برنامه یکسان رو تو شرایط یکسان ( مثل هر دو ساخت یافته باشند و هر دو از یک الگوریتم استفاده کنند و ...) با زبون های سی و سی پلاس پیاده سازی میکنیم باز هم برنامه نوشته شده با سی از سی پلاس سریع تره ؟ مگه سی پلاس پلاس به غیر از شئ گرایی ، چه ویژگی های اضافه ای رو داره که کامپایلر مجبور میشه کد پیچیده تری رو تولید کنه که بخاطر همین سرعتش از سی کم تر میشه؟؟؟؟؟
منم همچین حرفی شنیدم ولی چنین چیزی ندیدم.اگه یه نموداری چیزی که حرفتون رو ثابت کنه نشون بدین ممنون میشم
درضمن اگه c++ کندتر هم باشه این کندی اصلا قابل توجه نیست.
اگه میخواین تفاوت های c رو با c++ بدونین به c++11 و c++14 مراجعه کنین.
عنوان: پاسخ : چرا سرعت سی از سی پلاس پلاس بیشتره
ارسال شده توسط: majidkamali1370 در 20 تیر 1394، 02:56 ق‌ظ
سرعت C یه مقدار ناچیز و نامحسوس از ++C بیشتره، البته با کدهای یکسان. مثلا توی جفتش از توابع C استفاده کنید (مثل printf و ...) وگرنه تفاوت زیاد میشه(مثلا توی C از printf استفاده کنید و توی ++C از cout). چون STL از template ها خیلی استفاده کرده و باعث افت سرعت میشه، همچنین توی ++C بحث stream مطرح میشه که توی C وجود نداره (هدر iostream و هدرهای مشابه). البته به خاطر سرعت کمتر نسبت به C دلیل به بد بودنش نیست.
جالبه که بدونید بعضی موارد، سرعت ++C از C بیشتره. البته خیلی محسوس نیست.
مثلا در مورد استثناها در ++C و کدهای خطا در C. چون نحوه کارشون متفاوت هست.
C++:
try {
  function();
}
catch(Object obj) {
  //handle error of type Object
}
...
C:
int error_code = function();
if(error_code == 0) ;
  // No error
if(error_code == 1)
  // handle error code number one
...
عنوان: پاسخ : چرا سرعت سی از سی پلاس پلاس بیشتره
ارسال شده توسط: احسان فعالپور در 20 تیر 1394، 07:55 ب‌ظ
به نظر من که سرعت ++C توی نسخه های C++11 به بعد خیلی بیشتر هم شده.
علاوه بر امکاناتی که کمک میکنه خیلی راحت تر کد بزنیم،بحث Move Semantic  هم توی این نسخه ها وجود داره که به نظر من خیلی سرعت این زبان رو افزایش میده.