Форум программистов, компьютерный форум CyberForum.ru

Правда что С быстрее чем С++? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Chernomor
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 19
11.02.2010, 21:21     Правда что С быстрее чем С++? #1
Имеется в виду на исполнении, а не на момент компиляции...
Наверняка такая тема уже была, но я не нашёл, если дадите ссылку также буду презнателен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 21:21     Правда что С быстрее чем С++?
Посмотрите здесь:

Sin быстрее чем из math.h C++
Что работает быстрее? C++
C++ Быстрее чем цикл
C++ Правда ли, что все цифры равны
Правда что new очень медленная? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 21:26     Правда что С быстрее чем С++? #2
Нет, неправда.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 21:27     Правда что С быстрее чем С++? #3
ассемблер ещё быстрее
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 21:29     Правда что С быстрее чем С++? #4
zim22, тоже неверно.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,427
11.02.2010, 21:30     Правда что С быстрее чем С++? #5
Ну если рассматривать C++ как усовершенствованный C, то потери логичны там где внедрены новые возможности. В ООП например. Однако потери не особо значимые. В общем я думаю это не столь важно на чем писать на C или C++ если заботишься о скорости.
Chernomor
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 19
11.02.2010, 21:35  [ТС]     Правда что С быстрее чем С++? #6
Ну а если на с++ не использовать ООП а просто писать такойже код как на С где-то могут возникнуть задержки в работе?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
11.02.2010, 21:45     Правда что С быстрее чем С++? #7
в виду на исполнении:
Если алгоритм медленный и корявый, всё отстойное.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 21:46     Правда что С быстрее чем С++? #8
Цитата Сообщение от Chernomor Посмотреть сообщение
Ну а если на с++ не использовать ООП а просто писать такойже код как на С где-то могут возникнуть задержки в работе?
Какая разница с ООП или без. ООП в бинаре нет. На этот вопрос вообще не может быть ответа да или нет. Потому что где-то С будет быстре, где-то С++, где-то руки кривые у программиста, где-то ОС, где-то опции компилятора.
Chernomor
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 19
11.02.2010, 21:49  [ТС]     Правда что С быстрее чем С++? #9
А если нет разницы по скорости работы то почему некоторые продолжают писать на С а не на С++. Я так понимаю у него есть какие-то приимушества. Если есть то какие?
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 21:53     Правда что С быстрее чем С++? #10
Chernomor, потому разные люди любят разные языки. С и С++ - разные языки. Если мне в программе будет удобнее использовать ООП, я буду юзать С++. А если я почитаю, что удобнее обойтись без них, то я лучше напишу на С. Хотя никто мне не мешает написать на С++. Дело вкуса, среды, и библиотек. Если мне придется писать в какой-нибудь VC++ диалоговое окошко, то я заюзаю MFC и никуда от С++ не денусь. на чем хочешь, на том и пиши.
Цитата Сообщение от Chernomor Посмотреть сообщение
Я так понимаю у него есть какие-то приимушества. Если есть то какие?
Любое преимущество одного языка перед другим - субъективно.
Chernomor
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 19
11.02.2010, 21:53  [ТС]     Правда что С быстрее чем С++? #11
Цитата Сообщение от Vourhey Посмотреть сообщение
что где-то С будет быстре, где-то С++, где-то руки кривые у программиста, где-то ОС, где-то опции компилятора.
А где С будет рациональнее использовать?
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 21:58     Правда что С быстрее чем С++? #12
Цитата Сообщение от Vourhey Посмотреть сообщение
zim22, тоже неверно.
к сожалению моих знания ассемблера недостаточно для спора, но тема уже подымалась.
в некоторых случаях асм код быстрей.
http://stackoverflow.com/questions/5...-faster-than-c
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 22:07     Правда что С быстрее чем С++? #13
Цитата Сообщение от Chernomor Посмотреть сообщение
А где С будет рациональнее использовать?
Писать какую-нибудь системную утилиту мне приятнее на С. Хотя, приходилось иметь дело с С++ кодом на низком уровне. Если писать графическое что-нибудь под винду, то, скорее всего, на С++/MFC. Под линукс на С/GTK. Сложно найти место, где было бы однозначно выгодней использовать C. Но, в принципе, если хорошо понимать, что именно собираешься писать, то можно сделать вполне логичный выбор. На С++ сейчас пишут и драйвера и все, что угодно.

Добавлено через 2 минуты
Цитата Сообщение от zim22 Посмотреть сообщение
в некоторых случаях асм код быстрей.
А если в некоторых случаях, то не надо говорить, что он быстрей, чем С или С++. Так эти "некоторые случаи", которых много, ставят под сомнение твое смелое заявление, что ассемблер быстрее.

Добавлено через 3 минуты
zim22, самая просатя причина в том, что в компилятор заложена немалая логика по оптимизации кода (компиляторы не дураки пишут, а люди с опытом) и ты должен быть очень хорошим программистом на ассемблере, чтобы написать код лучше компилятора. Вторая причина в том, что в программе есть очень много узких мест, про которые тебе нужно знать: сеть, диск и т д. А третью причину я оставлю на потом, если найдешь что-нибудь против первых двух.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 22:15     Правда что С быстрее чем С++? #14
Цитата Сообщение от Vourhey Посмотреть сообщение
ты должен быть очень хорошим программистом на ассемблере, чтобы написать код лучше компилятора.
Цитата Сообщение от Vourhey Посмотреть сообщение
в программе есть очень много узких мест, про которые тебе нужно знать: сеть, диск и т д
ну и с чего ты взял, что не существует людей, обладающими этими качествами?
если же такие люди есть - они напишут код, который будет быстрее, сгенерированного С компилятором
следовательно ты был неправ, когда опроверг моё заявление, что ассемблер быстрее С
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 22:27     Правда что С быстрее чем С++? #15
Цитата Сообщение от zim22 Посмотреть сообщение
ну и с чего ты взял, что не существует людей, обладающими этими качествами?
А с чего ты взял, что их нет? Я такого не говорил. Они есть. Мы говорим о языках. А его используют люди. И большинство не сможет этого сделать. А раз уже есть те, кто не сможет, твое заявление о языке - ложь. Просто ты любишь все возводить в абсолют. Взял и обобщил все и выдал неправильное заявление. В правильных руках бывает ассемблер быстрее С, в другой ситуации С будет быстрее, чем ассемблер. Здесь нельзя дать однозначный ответ, как сделал ты. Это раз.
Код, сгенерированный компилятором, в большинстве своем, будет по быстродействию такой же, как написанный программистом на асме, а не медленнее. Это два.
Правило номер два выставит обе программы снова вровень. Это три.
Четыре. может, проверим? Увидим, кто круче, мой компилятор или ты с ассемблером.
А пять, это то, что работая, например, с программой ICQ написанной на С и на написанной на асме ты разницы и не заметишь никакой

Добавлено через 5 минут
Цитата Сообщение от zim22 Посмотреть сообщение
сгенерированного С компилятором
А ты что, можешь знать, как сгенериурет код любой компилятор с любыми опциями? Ну тогда ты либо гений, который все знает, либо глупец не посчитай за оскорбление. Я вот, например, за все компиляторы говорить не могу, так как меньше половины всех существующих юзал...
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 22:28     Правда что С быстрее чем С++? #16
Цитата Сообщение от Vourhey Посмотреть сообщение
Мы говорим о языках. А его используют люди. И большинство не сможет этого сделать. А раз уже есть те, кто не сможет, твое заявление о языке - ложь.
перечитывай свою цитату много раз. до тех пор, пока ты не поймёшь, где ошибка в твоей логической цепочке рассуждений.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 22:33     Правда что С быстрее чем С++? #17
Ошибки нет. Языки без людей не существуют. А раз есть люди нарушающие твое заявление о языке, твое заявление - ложь. Все логично.

Добавлено через 4 минуты
zim22, хорошо, фигле спорить. Привожу пример. Самый простой в одну строчку.
C
1
a =b;
А теперь объясни мне, почему этот код будет работать медленнее, чем
Assembler
1
movl (%ebp), %eax
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 22:36     Правда что С быстрее чем С++? #18
Vourhey, ок. приведу аналогию, если так не понимаешь.
что быстрей? автомобиль, развивающий скорость 300 км/час(ассемблер) или черепаха (Си)?
ответ: всё зависит от водителя автомобиля. если за рулём будет блондинка, которая не сможет им управлять - черепаха будет передвигаться быстрее.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.02.2010, 22:38     Правда что С быстрее чем С++? #19
zim22, аналогия ужасна. С чего ты взял, что С черепаха? Ты еще этого не доказал. Выше простейший пример кода. Вот и докажи, что С черепаха. Вперед.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2010, 22:47     Правда что С быстрее чем С++?
Еще ссылки по теме:

C++ Что быстрее: i++ или ++i ?
C# работает быстрее чем С++ C++
C++ C программа компилируется быстрее чем C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 22:47     Правда что С быстрее чем С++? #20
асм код быстрее? вопрос исчерпан.
код взят из ссылки, что я приводил выше.
http://stackoverflow.com/questions/5...-faster-than-c

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "stdafx.h"
#include <windows.h>
#include <iostream>
 
using namespace std;
 
float KahanSum
(
  const float *data,
  int n
)
{
   float
     sum = 0.0f,
     C = 0.0f,
     Y,
     T;
 
   for (int i = 0 ; i < n ; ++i)
   {
      Y = *data++ - C;
      T = sum + Y;
      C = T - sum - Y;
      sum = T;
   }
 
   return sum;
}
 
float AsmSum
(
  const float *data,
  int n
)
{
  float
    result = 0.0f;
 
  _asm
  {
    mov esi,data
    mov ecx,n
    fldz
    fldz
l1:
    fsubr [esi]
    add esi,4
    fld st(0)
    fadd st(0),st(2)
    fld st(0)
    fsub st(0),st(3)
    fsub st(0),st(2)
    fstp st(2)
    fstp st(2)
    loop l1
    fstp result
    fstp result
  }
 
  return result;
}
 
int main (int, char **)
{
  int
    count = 1000000;
 
  float
    *source = new float [count];
 
  for (int i = 0 ; i < count ; ++i)
  {
    source [i] = static_cast <float> (rand ()) / static_cast <float> (RAND_MAX);
  }
 
  LARGE_INTEGER
    start,
    mid,
    end;
 
  float
    sum1 = 0.0f,
    sum2 = 0.0f;
 
  QueryPerformanceCounter (&start);
 
  sum1 = KahanSum (source, count);
 
  QueryPerformanceCounter (&mid);
 
  sum2 = AsmSum (source, count);
 
  QueryPerformanceCounter (&end);
 
  cout << "  C code: " << sum1 << " in " << (mid.QuadPart - start.QuadPart) << endl;
  cout << "asm code: " << sum2 << " in " << (end.QuadPart - mid.QuadPart) << endl;
 
  return 0;
}
C code: 500137 in 242311
asm code: 500137 in 117188
Yandex
Объявления
11.02.2010, 22:47     Правда что С быстрее чем С++?
Ответ Создать тему
Опции темы

Текущее время: 17:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru