powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Delphi быстрее С++?
113 сообщений из 113, показаны все 5 страниц
Delphi быстрее С++?
    #37405268
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень много дискуссий о том, какой язык лучше. Но все же советую всем, кто хочет разобраться, какой компилятор лучше Delphi или C++: быстрее компилирует и лучше оптимизирует код, сделать это СОБСТВЕННОРУЧНО и не верить никаким тестам. Большинство тестов - это просто реклама фанатов того или иного языка. Во многом в тестах используются специализированные функции конкретной среды, а этого для объективной оценки нужно избегать.
Во-первых, наиболее объективный ответ могут дать люди, которые в одинаковой степени хорошо знают языки и не имеет значения на каком из них писать. Я всю жизнь думал, что если писать графический движок или ядро некоторого сложного программного проекта, то его обязательно нужно писать на С++ (собственно так я и делал). Мол все вокруг говорят, что С++ лучше предназначен для этих целей, все операционные системы и драйвера на нем пишут и т.д. Но никто ни разу не говорил о том, что язык С++ для этого используется в силу его кроссплатформенности и исторически сложившихся предпочтений. К сожалению Delphi начинает сей путь только сейчас путем покорения Linux, MacOS своим открытым проектом Lazarus.
Во-вторых, сравнивать нужно не языки, а компиляторы! Язык – это лишь средство представления алгоритма, и тут уже предпочтение отдается «на цвет и вкус».
И в третьих, никакие интерпретируемые языки никогда не сравняться по скорости с компилируемыми (это я думаю очевидно). Хотя интерпретируемые и обладают рядом непревзойденных преимуществ над компилируемыми, но это отдельная история…
Итак, начнем тест. Было взято две среды: С++ – Microsoft Visual Studio 2008 Professional Edition и Embarcadero Delphi XE. На этих языках написано две одинаковые DLL библиотеки: LibC++.dll и LibDelphi.dll. Компиляция всех проектов проводилась Release с максимальной степенью оптимизации. Расчет выполнен простой: в массиве ищем максимальное и минимальное значение, потом нормируем весь вектор и вычисляем от него сумму синусов. Это наиболее характерные задачи компьютерной графики – расчетные математические.

Текст DLL библиотеки на Delphi.
Код: plaintext
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.
library LibDelphi;
uses  Math;
type
  // Создадим аналог массивов в С++, чтоб работать идентично
  PDoubles = ^TDoubles;
  TDoubles = array [0..0] of Double;

function Calc(const V: PDoubles; Count: Integer): Double; stdcall;
var
  i: Integer;
  MinVal, MaxVal: Double;
begin
  Result := 0.0;
	MaxVal := -MaxDouble;
	MinVal := MaxDouble;
	for i := 0 to Count-1 do
    begin
		  if v[i] > MaxVal then MaxVal := v[i];
		  if v[i] < MinVal then MinVal := v[i];
    end;
	for i := 0 to Count-1 do
    Result := Result + sin(2*(v[i]-MinVal)/(MaxVal-MinVal) - 1);
end;

exports Calc;
begin
end.
Текст DLL библиотеки на C++.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <math.h>
#include <float.h>

__declspec(dllexport) double __stdcall Calc(const double *v, int Count)
{
	if (Count <= 0) return 0.0;
	double Res = 0.0;
	double MaxVal = -DBL_MAX;
	double MinVal = DBL_MAX;
	for (int i = 0; i < Count; i++)
	{
		if (v[i] > MaxVal) MaxVal = v[i];
		if (v[i] < MinVal) MinVal = v[i];
	};
	for (int i = 0; i < Count; i++)
		Res += sin(2*(v[i] - MinVal)/(MaxVal - MinVal) - 1);
	return Res;
};
Текст тестовой программы, которая вызывает эти библиотеки. Написана на Delphi, чтоб не создавать lib от Delphi библиотеки при ее подключении в сишному коду.

Код: plaintext
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.
const
  COUNT = 10000000; //кол-во элементов массива

type
  PDoubles = ^TDoubles;
  TDoubles = array [0..0] of Double;

function CalcC(const V: PDoubles; Count: Integer): Double; stdcall; external 'LibC++.DLL' name 'Calc';
function CalcD(const V: PDoubles; Count: Integer): Double; stdcall; external 'LibDelphi.DLL' name 'Calc';

var
  V: PDoubles;
  Res1, Res2: Double;
  i, t0, t1, t2: Integer;
begin
  Writeln('Start');
  GetMem(V, COUNT*SizeOf(Double));

  for i := 0 to COUNT-1 do
    V[i] := Random;

  t0 := GetTickCount;
  Res1 := CalcC(V, COUNT);
  t1 := GetTickCount;
  Res2 := CalcD(V, COUNT);
  t2 := GetTickCount;

  Writeln('Function C++: ' + IntToStr(t1-t0) + ' ms');
  Writeln('Function Delphi: ' + IntToStr(t2-t1) + ' ms');
  Writeln('Res C++: ' + FormatFloat('0.000', Res1));
  Writeln('Res Delphi: ' + FormatFloat('0.000', Res2));

  FreeMem(V, COUNT*SizeOf(Double));
  Writeln('Finish');
end.

Результаты такие: LibDelphi.dll – размер 81,5 Кб; LibC++.dll – размер 61,0 Кб. При больших объемах кода эта разница в процентном отношении может быть меньше.
Вывод консоли:

Код: plaintext
1.
2.
3.
4.
5.
Start
Function C++: 1063 ms
Function Delphi: 500 ms
Res C++: -176,573
Res Delphi: -176,573
Finish

Если честно, не понимаю почему такой результат, я ожидал увидеть совсем обратное. Разница: функция Delphi в 2 раза быстрее аналогичной на С++! Оптимизация на максимуме в обоих проектах. Буду благодарен, если найдете ошибку в моих рассуждениях, потому что истина дороже.
Таким образом, мы протестировали простые две математические функции и увидели большую разницу (хотя в правдоподобности я сомневаюсь, сильно уж большая разница).
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405292
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, в подавляющем большинстве случаев скорость компиляции - один из последних факторов при современных мощах писюков. Взять например скриптовые языки, и наверное, самый тормознутый из них - руби: хотя скорость исполнения кода на нем может быть на 2-3! порядка ниже откомпилированного кода С или Паскаля, это не сводит его поклонников к нулю (точнее, не этот фактор, т.к. руби всеже просел по популярности).
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405301
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, вы о скорости компиляции или о скорости выполнения?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405375
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonГоспода, вы о скорости компиляции или о скорости выполнения?
Конечно речь сейчас идет о времени выполнения функции
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405387
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoPro,
Ну просто и в твоем сообщении и у arni встречается упоминание времени компиляции, но не ясно, к чему.

----

Если фраза "максимальные оптимизации" по поводу Дельфи в принципе не очень расплывчата, то на счет c++ хотелось бы увидеть параметры компиляции.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405426
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходники можете скачать. Пути настроены относительные
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405430
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoPro,

Ну вот решил я твои тексты под VC 2005 vs Delphi7 прогнать.

Сходу как у тебя дельфя не смогла найти точку входа в процедуру сишной библиотеки, потому я сделал cdecl и убрал stdcall:
Код: plaintext
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.
#include <math.h>
#include <float.h>

extern "C"
{
	
__declspec(dllexport) double vcCalc(const double *v, int Count)
{
	if (Count <=  0 ) 
	{
		return  0 . 0 ;
	}
	
	double Res =  0 . 0 ;
	double MaxVal = -DBL_MAX;
	double MinVal = DBL_MAX;
	
	for(int i =  0 ; i < Count; i++)
	{
		if (v[i] > MaxVal) MaxVal = v[i];
		if (v[i] < MinVal) MinVal = v[i];
	};
	for (int i =  0 ; i < Count; i++)
	{
		Res += sin( 2 *(v[i] - MinVal)/(MaxVal - MinVal) -  1 );
	}
	return Res;
};

Ну и в дельфе соответственно. Завелось. Но результат вышел еще печальнее:

Код: plaintext
1.
2.
3.
4.
5.
Function C++:  2640  ms
Function Delphi:  766  ms
Res C++: - 176 , 573 
Res Delphi: - 176 , 573 
Finish

Ок. А давай проверим, не выходя из VC и не делая никаких dll-ек.

Код: plaintext
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.
#include <math.h>
#include <windows.h>

#include <iostream>

using namespace std;

double vcCalc(const double* v, int count)
{
	if(count <=  0 ) return  0 . 0 ;
	
	double result =  0 . 0 ;
	double max = - 1 ;
	double min =  2 ;
	
	for(int i =  0 ; i < count; i++)
	{
		if(v[i] > max) max = v[i];
		if(v[i] < min) min = v[i];
	};
	
	for(int i =  0 ; i < count; i++)
	{
		result += sin( 2  * (v[i] - min) / (max - min) -  1 );
	}
	
	return result;
};

const int count =  10000000 ; 

int main(int argc, char* argv[])
{
	double* v = new double[count];

	for(int i =  0 ; i < count; ++i) v[i] = (double)rand() / RAND_MAX;

	DWORD t0 = GetTickCount();
	double res = vcCalc(v, count);
	DWORD t1 = GetTickCount();

	cout << (t1 - t0) << " ms, result = " << res << endl;

	return  0 ;
}

Все нормально? Вроде да. Рендомы от 0 до 1. Ну код переформатировал и поменял константы.

Результат: 600 ms

Давай тоже самое сделаем и с дельфи, т.е. дельфийную функциию вкомпилим в exe. Ничего не изменилось: 780 ms .
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405431
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, еще:

d7lib.dll - 41 472 байта
vclib.dll - 6 656 байт всего ))
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405447
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже попробовал наоборот в С++ использовать Delphi, в Delphi - C++, просто без библиотек с одними только ехе-шниками.
Вердикт: код на С++ на 16,4 % работает быстрее, чем на Delphi .
Замечание: вся проблема с таким замедлением была видимо в вызову функции (хотя не понятно почему)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405463
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зато код на дэлфи быстрее компилируется, в разы.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405465
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaNзато код на дэлфи быстрее компилируется, в разы.
Согласен, особенно когда кода много, а ты начинаешь править и менять при этом компилировать и запускать, то в С++ намного больше для этого требуется времени.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405472
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoPro,

Когда кода очень много, то обычно не принято его в один объектный файл компилировать. В итоге перекомпилируешь только то, что правишь.

Ну и в с++ ты пользуешься сложными типами данных, которые реализованы шаблонами. В Дельфи же никаких шаблонов. В итоге конечно же компилятору с++ приходится много "думать", т.к. за простыми, казалось бы, строками могут скрывать весьма зубодробительные конструкции и взаимосязи. Плохо это или хорошо? Кому писать простенькие программки, тому наверняка плохо. Особенно пытаться понять что-то в монструозных сообщениях об ошибке, когда в них вываливаются километровые определения многоэтажного шаблонного типа ))
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405474
VanoPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonНу и в с++ ты пользуешься сложными типами данных, которые реализованы шаблонами. В Дельфи же никаких шаблонов. В итоге конечно же компилятору с++ приходится много "думать", т.к. за простыми, казалось бы, строками могут скрывать весьма зубодробительные конструкции и взаимосязи. Плохо это или хорошо? Кому писать простенькие программки, тому наверняка плохо. Особенно пытаться понять что-то в монструозных сообщениях об ошибке, когда в них вываливаются километровые определения многоэтажного шаблонного типа ))

Согласен и с этим. Вобщем основная задача этой темы была определить лучший компилятор по скорости выполняемого кода. Эта задача была успешно выполнена в пользу С++. А дальше копать не будем. Все равно эти "священные" войны бесконечны. Есть поклонники и того языка и другого. Пусть каждый пишет на своем в удовольствие и без ошибок :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405477
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonVanoPro,

Ну и в с++ ты пользуешься сложными типами данных, которые реализованы шаблонами.

ты отстал от жизни ))
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405479
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNEdd.DragonVanoPro,

Ну и в с++ ты пользуешься сложными типами данных, которые реализованы шаблонами.

ты отстал от жизни ))

http://sjrd.developpez.com/delphi/tutoriel/generics/
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405497
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Я про них и забыл
Таки да, и тут прикрутили
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405518
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быть дело в разных менеджерах памяти?
как насчет измерить время уже в функции(я про си)?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405727
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DLL загрузить нужно сначала, потом измерениями заниматься.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405866
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор, зырьте как компиляторы сравнивают и заканчивайте заниматься изобретением лисапета :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405868
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из этого видно, что в целом компиляторы борланда сосут :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37405953
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2из этого видно, что в целом компиляторы борланда сосут :)Табличка означает, что на этапе компиляции, например выражение а+а+а+а заменяется на а*4?
Дааа, это крутая оптимизация, наверное в каждой программе по много таких выражений ;)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406036
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для изобретателей лисапета, глде версии компиляторов на рисунке?
компилятор с++ будет медленне компилятора делфи за счет того, что он двухпроходный (wo-pass compiler).
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406120
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alneoдля изобретателей лисапета, глде версии компиляторов на рисунке?
компилятор с++ будет медленне компилятора делфи за счет того, что он двухпроходный (wo-pass compiler).
скорость компиляции слабо интересует, интересует скорость выполнения того, что накомпилировали

насчет версий - это срез на 2010 год
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406128
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда-то давно сравнивал скорости сишных компиляторов под винду, на первых местах был интел и ватком, борландовский был самый медленный. но это были синтетеические тесты. на скорости работы приложений(клиент-серверные) это никак не сказывалось :-)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406142
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alneoкогда-то давно сравнивал скорости сишных компиляторов под винду, на первых местах был интел и ватком, борландовский был самый медленный. но это были синтетеические тесты. на скорости работы приложений(клиент-серверные) это никак не сказывалось :-)
смотря как мерять если на глазок, то наверное, не сказывается
а если счет идет на миллисекунды, то очень сильно сказывается :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406163
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2,

Но это больше относится к серверной части. А клиентские обычно характеризуются простоем и клацаньем мышки, рысованием формочек ))
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406298
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonАлександр2,

Но это больше относится к серверной части. А клиентские обычно характеризуются простоем и клацаньем мышки, рысованием формочек ))
для серверных если мерять rdtsc'ом - то видно очень сильно :)
только тут проблема в том, что часто надо смотреть что сгенерил компилятор и если он ступил то пробовать переписать (не на асме, а на языке на котором пишешь) еще раз и посмотреть что опят получится.. если совсем не получается то тогда азм в руки и фпередд :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406313
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у каждой фирмы свой компилятор и пр. C++
Delphi - одно, если не брать отдельно Dephi Prism, Lasarus,

Кто как напишет и что применит.

Вообще противопоставление дойдет от Pascal и C, а там и до ассемблеров недалеко, ЕСЛИ СКОРОСТИ НУЖНЫ,
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406321
pil0t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторядро некоторого сложного программного проекта
я, конечно, извиняюсь, но приведенный пример очень далеко от сложного программного проекта
Сравнение производительности по одному такому параметру - не имеет смысла, уверен что для многих языков можно найти такие тесты, когда они будут чуть быстрее/чуть медленнее конкурентов.
Если хочется сравнить быстродействие для сложного проекта - то хочется знать кто и как быстро работает:
1. Использование наследования
Создадим иерархию из 10, 20, 100 классов - как быстро создаются экземпляры того другого
Зависит ли скорость вызова членов класса от того как мы их вызываем (напрямую, интерфейс, что-нибудь ещё типа Reflection (C#))
2. Разделить сравнение по типам задач:
Работа с
текстом

целыми числами

float

массивы

списки

ЗЫ: Я вообще пишу на C# и по поводу скорости никаких претензий к нему не имею, с другой стороны было бы интересно хотя бы для общего развития знать что и на сколько быстрее будет работать на том же delphi/C++
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406331
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asmъ есмь царь!
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406367
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗЫ: Я вообще пишу на C# и по поводу скорости никаких претензий к нему не имею, с другой стороны было бы интересно хотя бы для общего развития знать что и на сколько быстрее будет работать на том же delphi/C++
в managed средах (и в C# в частности) 2 вещи, которые ставят крест на скорость:

1) проверки всего и вся (например, чтобы обратиться к элементу массива за первой строкой кеша, все равно придется первую подгрузить, чтобы узнать размер и соответственно проверить за выход за границы) + много чего
2) GC

эти 2 проблемы решаемы в определенных рамках, но код становится сложнее, чем на С++ :)

код, где нет этих 2 пунктов, будет работать также как на C++ (а то и быстрее, благодаря jit)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406383
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2например, чтобы обратиться к элементу массива за первой строкой кеша, все равно придется первую подгрузить, чтобы узнать размер и соответственно проверить за выход за границы
Не совсем понял, что имеется ввиду. Можно на примере?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406454
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonАлександр2например, чтобы обратиться к элементу массива за первой строкой кеша, все равно придется первую подгрузить, чтобы узнать размер и соответственно проверить за выход за границы
Не совсем понял, что имеется ввиду. Можно на примере?
у вас массив - например 256 элементов, обращаетесь к элементу с номером > 64 (длина строки кеша на большинстве процессоров, + предположим сам указатель массива выровнен на 64 байта (для простоты)),
соответственно подгружается строка кеша, которая содержит нужный элемент, + так как надо проверить выход за границы, то надо подгрузить в кеш начало объекта (там хранится длинна массива), т.е. по сути 2 строки кеша подгружаем

но опять таки, не все так просто....
компилятор C# об этом знает, поэтому если вы бежите в цикле по массиву, то он обращается только один раз к переменной в которой хранится длина - далее на время цикла длину в регистре хранит
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406615
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonZyK_BotaN,

Я про них и забыл
Таки да, и тут прикрутилиДженерики - это не совсем шаблоны. Начнем с того, что тело дженерик-класса компилируется в .DCU
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406631
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КвейдEdd.DragonZyK_BotaN,

Я про них и забыл
Таки да, и тут прикрутилиДженерики - это не совсем шаблоны. Начнем с того, что тело дженерик-класса компилируется в .DCU

ну и слава богу, что не совсем шаблоны, хоть компилируются за ограниченное время, не то что тюрринг полные тэмплэйты.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406750
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNКвейдпропущено...
Дженерики - это не совсем шаблоны. Начнем с того, что тело дженерик-класса компилируется в .DCU

ну и слава богу, что не совсем шаблоны, хоть компилируются за ограниченное время, не то что тюрринг полные тэмплэйты.
очень жаль, что не совсем шаблоны
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406755
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2ZyK_BotaNпропущено...


ну и слава богу, что не совсем шаблоны, хоть компилируются за ограниченное время, не то что тюрринг полные тэмплэйты.
очень жаль, что не совсем шаблоны

Алесандреску, перелогинтесь.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406854
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNАлександр2пропущено...

очень жаль, что не совсем шаблоны

Алесандреску, перелогинтесь.
ой простите :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406865
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2ZyK_BotaNпропущено...


Алесандреску, перелогинтесь.
ой простите :)

а реально, тебе когда-то была нужна вся мощь шаблонов? они же тактие неудобные.
единственно где я видел примеры нетривиального кода на шаблонах - в книге алекснадреску.

если хочешь метапрограммировать, юзай коммон лисп, это я так думаю.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406879
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNАлександр2пропущено...

ой простите :)

а реально, тебе когда-то была нужна вся мощь шаблонов? они же тактие неудобные.
единственно где я видел примеры нетривиального кода на шаблонах - в книге алекснадреску.

если хочешь метапрограммировать, юзай коммон лисп, это я так думаю.
удивишься, но сцуко постоянно, когда пишу на C++
по большей части потому что для тех прог что я пишу, стоимость вызова виртуальной функции - дюжа много, приходится полиморфизм на шаблонах лепить, с жестким метапрограммированием местами

а вообще хорошо обобщенный и грамотно написанный код у меня вызывает вАсторгГ :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406882
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2
а вообще хорошо обобщенный и грамотно написанный код у меня вызывает вАсторгГ :)

но разве темплєйті для єтого лучший вібор?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406883
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNАлександр2а вообще хорошо обобщенный и грамотно написанный код у меня вызывает вАсторгГ :)

но разве темплєйті для єтого лучший вібор?
да, все биндается на этапе компиляции, никаких накладных расходов
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406889
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2ZyK_BotaNпропущено...


но разве темплєйті для єтого лучший вібор?
да, все биндается на этапе компиляции, никаких накладных расходов

то-то кде по фрибєєсди двое суток собирается )))

з.і. макрі в лиспе удобней, гораздо.
да и темплєйті си++ не вписіваются в язік
ті не можешь например строку разобрать

а в лиспе, при работе с рєкєкспами, они компилируются при компиляции(так как макрі лиспа органично сочетаются с язіком, и что можно в рантайме, то можно и при компиляции), что дает нехилій прирост в производительности.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406895
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не надо пытаться в один езыГ запихнуть все что только можно :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37406899
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2не надо пытаться в один езыГ запихнуть все что только можно :)

вот потому я и не люблю с++. мало того что пихают все, дак оно еще и не органично вписівается.

а в лиспе все четко.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407621
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNАлександр2не надо пытаться в один езыГ запихнуть все что только можно :)

вот потому я и не люблю с++. мало того что пихают все, дак оно еще и не органично вписівается.

а в лиспе все четко.
я вам так скажу - С++ божественен )
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407635
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2из этого видно, что в целом компиляторы борланда сосут :)
Получается что у Intel и Gnu больше всего опций. Но только-ли опции нужны
разработчикам?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407830
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 21.08.2011 22:02, VanoPro wrote:

> Очень много дискуссий о том, какой язык лучше. Но все же советую всем, кто хочет
> разобраться, какой компилятор лучше Delphi или C++: быстрее компилирует и лучше
> оптимизирует код, сделать это СОБСТВЕННОРУЧНО и не верить никаким тестам.
> Большинство тестов - это просто реклама фанатов того или иного языка. Во многом

ФГМ ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407832
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 22.08.2011 2:52, VanoPro wrote:

> Согласен и с этим. Вобщем основная задача этой темы была определить лучший
> компилятор по скорости выполняемого кода. Эта задача была успешно выполнена в
> пользу С++.

Диагноз подтверждается. :-(
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407839
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoProСогласен и с этим. Вобщем основная задача этой темы была определить лучший компилятор по скорости выполняемого кода. Эта задача была успешно выполнена в пользу С++. А дальше копать не будем.
Интересно а какой "минимум" тестов нужно исполнить чтобы решить, какой компиллятор лучший?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37407852
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2ZyK_BotaNпропущено...


вот потому я и не люблю с++. мало того что пихают все, дак оно еще и не органично вписівается.

а в лиспе все четко.
я вам так скажу - С++ божественен )

Так точно!!!
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37408113
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАлександр2из этого видно, что в целом компиляторы борланда сосут :)
Получается что у Intel и Gnu больше всего опций. Но только-ли опции нужны
разработчикам?
это не опции - это, что реально умеет делать компилятор, т.е. какие оптимизации выполнять
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37410388
No b0dy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VanoPro,

ты неправильно тестишь. Здесь дельфи даже медленнее C#, а тем более джавы или C++
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37410402
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
No b0dyVanoPro,

ты неправильно тестишь. Здесь дельфи даже медленнее C#, а тем более джавы или C++
Угу. В 2004-ом году в НЕнативных расчетах с 64-битными числами.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37423559
Ирнис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37425979
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2ZyK_BotaNпропущено...
но разве темплєйті для єтого лучший вібор?
да, все биндается на этапе компиляции, никаких накладных расходов
Это не так.
Шаблоны порождают множественность инстанциаций, чем увеличивают объем маш.кода, и это негативно скажется на КПД процессорного кэша.

Но в целом уровень оптимизации шаблонов очень хороший. Есть тесты Степанова, проверяющие это для разных компиляторов.
И тут на форуме есть сравнения например искать scimark.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37427200
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglАлександр2пропущено...

да, все биндается на этапе компиляции, никаких накладных расходов
Это не так.
Шаблоны порождают множественность инстанциаций, чем увеличивают объем маш.кода, и это негативно скажется на КПД процессорного кэша.

Но в целом уровень оптимизации шаблонов очень хороший. Есть тесты Степанова, проверяющие это для разных компиляторов.
И тут на форуме есть сравнения например искать scimark.
выделенное - это атас...
шоконкретно вы ввиду имеете?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37427221
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЕсть тесты Степанова, проверяющие это для разных компиляторов.

В это время объявляют:
Состязаниям конец.
Дядю Стёпу поздравляют:
- Ну, Степанов! Молодец!
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37428736
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2,

Ежели какое слово Вам непонятно, то прилежное гугление и чтение проф.статей и форумов с разработчиками компиляторов может помочь. А может и нет.

Если проще - то вот: "шаблоны тоже имеют накладные расходы"
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37432193
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglАлександр2,

Ежели какое слово Вам непонятно, то прилежное гугление и чтение проф.статей и форумов с разработчиками компиляторов может помочь. А может и нет.

Если проще - то вот: "шаблоны тоже имеют накладные расходы"
на первой странице гугл не вывел ни одной вменяемой ссылки, дальше смотреть влом

вы можете нормальными словами объяснить что вы хотели сказать? :)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437079
Александр2Siemarglпропущено...

Это не так.
Шаблоны порождают множественность инстанциаций, чем увеличивают объем маш.кода, и это негативно скажется на КПД процессорного кэша.

Но в целом уровень оптимизации шаблонов очень хороший. Есть тесты Степанова, проверяющие это для разных компиляторов.
И тут на форуме есть сравнения например искать scimark.
выделенное - это атас...
шоконкретно вы ввиду имеете?

template, как и generics - это copy&paste, китайский метод программирования - но возведенный в абсолют.

В результате современный начинающий говнокодер программист уже не может думать динамическим массивом (realloc), ибо атрофия мозга.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437083
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуВ результате современный начинающий говнокодер программист уже не может думать динамическим массивом (realloc), ибо атрофия мозга.

мда уж. параметрический полиморфизм - важный аспект типизации.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437091
ZyK_BotaNПоясним чупачупсуВ результате современный начинающий говнокодер программист уже не может думать динамическим массивом (realloc), ибо атрофия мозга.

мда уж. параметрический полиморфизм - важный аспект типизации.

Разъясни это чувакам, написавшим Linux Kernel или Apache HTTPD.

А то вдруг они не знают, что нынче важно?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437098
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNпропущено...


мда уж. параметрический полиморфизм - важный аспект типизации.

Разъясни это чувакам, написавшим Linux Kernel или Apache HTTPD.

А то вдруг они не знают, что нынче важно?

а не буду я им ничего разъяснять, написали - и молодцы.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437135
ZyK_BotaNа не буду я им ничего разъяснять, написали - и молодцы.

Ты не юли. Ты давай рассказывай, что у них там не так с типизацией, и как так - темплейтов нет, а продукт пишут.
Что они делают не так?

Или может это ты, как и многие тысячи любителей STL/Boost - таки чего-то сильно не догоняете?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437136
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNа не буду я им ничего разъяснять, написали - и молодцы.

Ты не юли. Ты давай рассказывай, что у них там не так с типизацией, и как так - темплейтов нет, а продукт пишут.
Что они делают не так?

Или может это ты, как и многие тысячи любителей STL/Boost - таки чего-то сильно не догоняете?

че тебе рассказывать. все равно не поймешь.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437146
1ZyK_BotaNче тебе рассказывать. все равно не поймешь.

Ты не мне рассказывай. Ты себе и подобным расскажи.

А мы посмотрим - способен ли ты к осмысленной деятельности (объяснению), или только способен бездумно подражать, слабо понимая, зачем оно тебе вообще надо.

Попробуй.

Или тебе это так сложно?

Так зачем тебе темплейты? Конкретный пример можно?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437151
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсу1ZyK_BotaNче тебе рассказывать. все равно не поймешь.

Ты не мне рассказывай. Ты себе и подобным расскажи.

А мы посмотрим - способен ли ты к осмысленной деятельности (объяснению), или только способен бездумно подражать, слабо понимая, зачем оно тебе вообще надо.

Попробуй.

Или тебе это так сложно?

Так зачем тебе темплейты? Конкретный пример можно?

ну, сначала нужно выяснить, нужна ли статическая типизация в принципе. если нужна, то и параметрический полиморфизм пригодится.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437154
ZyK_BotaNну, сначала нужно выяснить, нужна ли статическая типизация в принципе.
В принципе нужна. И в ANSI C она есть и всегда была.

ZyK_BotaNесли нужна, то и параметрический полиморфизм пригодится.
Это логически бессмысленное и бессвязное утверждение.

Статическая типизация может жить и без параметрического полиморфизма, он ей - не нужен, и помощи никакой от него нет.
Еще раз - какая в ней польза, кроме упорядочивания китайского метода программирования через copy&paste?

Давай уже пример, когда без параметрического полиморфизма вообще никак нельзя? Даже чисто идеи ради?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437158
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуЕще раз - какая в ней польза, кроме упорядочивания китайского метода программирования через copy&paste?


ну копи&паст - это способ реализации параметрического полиморфизма в си++, в других можно по другому.

польза от не в том, что мы пишем обобщенный код, но при этом, проверка типов - работает.
т.е. если список целых, то строки там быть ну никак не может.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437163
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNну, сначала нужно выяснить, нужна ли статическая типизация в принципе.
В принципе нужна. И в ANSI C она есть и всегда была.



си - весьма условно статически типизирован, а главное не очень строго.
в нем можно без параметрического полиморфизма, а вот статически строго типизированных языках типо хаскеля - никак без него.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437176
ZyK_BotaNПоясним чупачупсуЕще раз - какая в ней польза, кроме упорядочивания китайского метода программирования через copy&paste?


ну копи&паст - это способ реализации параметрического полиморфизма в си++, в других можно по другому.

польза от не в том, что мы пишем обобщенный код, но при этом, проверка типов - работает.
т.е. если список целых, то строки там быть ну никак не может.

А как насчет того, что вместо массива структур число-строка современный чумазый говнокодер в 50% случаев напишет
два вектора - чисел и строк (даже не объектов)?

И чем ему помогут темплейты?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437177
ZyK_BotaNПоясним чупачупсупропущено...

В принципе нужна. И в ANSI C она есть и всегда была.



си - весьма условно статически типизирован, а главное не очень строго.
в нем можно без параметрического полиморфизма, а вот статически строго типизированных языках типо хаскеля - никак без него.

Попробуй присвоить значение переменной одного typedef от стуктуры - другой, от другой структуры.
То-же - с указателями (и много думай, читая warning).

А потом приходи и рассказывай про слабую типизацию в C.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437179
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNпропущено...


ну копи&паст - это способ реализации параметрического полиморфизма в си++, в других можно по другому.

польза от не в том, что мы пишем обобщенный код, но при этом, проверка типов - работает.
т.е. если список целых, то строки там быть ну никак не может.

А как насчет того, что вместо массива структур число-строка современный чумазый говнокодер в 50% случаев напишет
два вектора - чисел и строк (даже не объектов)?

И чем ему помогут темплейты?

хотел ответить, а потом понял что ты подводишь к тому, что не "современный чумазый гонокодер" не засунит в массив целых - строку. да?

ну тогда да, статическая типизация не нужна, ведь тру олдфаг мегакодер - никогда не ошибается.

да и если отбросить понятие ошибки.
почему я должен думать про какойто объект(например коллекцию, что это коллекция объектов, но не могу конкретизировать, что целых объектов?

вот пример, ты же его просил.

есть сигнатура ф-и:
void f(List<int> list);
и
void f(List list);

какой код читабельнее и понятнее?
с первой сигнатуры мы можем понять гораздо больше.

в строготипизированном хаскеле, вообще часто можно по сигнатуре ф-и понять что она делает. в си конечно с этим проблема.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437180
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNпропущено...


си - весьма условно статически типизирован, а главное не очень строго.
в нем можно без параметрического полиморфизма, а вот статически строго типизированных языках типо хаскеля - никак без него.

Попробуй присвоить значение переменной одного typedef от стуктуры - другой, от другой структуры.
То-же - с указателями (и много думай, читая warning).

А потом приходи и рассказывай про слабую типизацию в C.

он слаботипизирован по сравнению с семейством ML.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437187
ZyK_BotaNкакой код читабельнее и понятнее?
И первое и второе - говнокод.

Массив целых чисел - абслютно бредовая конструкция, хоть в чистом виде, хоть в виде твоего List <int>.
Нет такой абстрации для хранения данных - массив целых. Для обработки - может быть. Но не для храения/представления/аргументов/параметров.

А вот насчет строк - если внимательно посмотреть код nginx, gdb и не только, то можно увидеть, что
строки нынче принято хранить в виде структуры - {длина в байтах, rawdata}. А не в виде strz.

В этом случае попутать строку и массив целых как-то и не получится, просто так.

И так во всем.

Просто кардинальные типы, в чистом виде - это бред сивой кобылы. Кури структуры, даже размером в один байт.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437190
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNкакой код читабельнее и понятнее?
И первое и второе - говнокод.

Массив целых чисел - абслютно бредовая конструкция, хоть в чистом виде, хоть в виде твоего List <int>.
Нет такой абстрации для хранения данных - массив целых. Для обработки - может быть. Но не для храения/представления/аргументов/параметров.


окэй.

возьмем пример из хаскеля.

есть монада IO.

мы прочитали цеэлой, поэтому тип будет IO Int.
прочитаем строку, будет тип IO String.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437194
ZyK_BotaNпрочитаем строку, будет тип IO String.
Мне фиолетовы проблемы хаскеля, питона, PHP и прочей ерунды вроде руби.

В рамках Pure C vs C++ я готов поговорить. В части бессмысленной бесполезности шаблонов, STL, Boost и прочей пакости.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437196
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясним чупачупсуZyK_BotaNпрочитаем строку, будет тип IO String.
Мне фиолетовы проблемы хаскеля, питона, PHP и прочей ерунды вроде руби.

В рамках Pure C vs C++ я готов поговорить.

в этих рамках можно обойтись без параметрического полиморфизма, так как эти языки в меру динамические.

а я говорил, хочешь статики - юзай параметрический полиморфизм.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437203
ZyK_BotaNа я говорил, хочешь статики - юзай параметрический полиморфизм.

А я говорю - параметрический полиморфизм нафиг не нужен, ни мне, ни вообще.
Это очередная попытка совладать с буйным говнокодерством.

На практике-же - она только усложняет реализацию задачи, а помощи - ноль.

Более того - когда начинаешь прижимать говнокодеров STL-иков к ответу, то дальше списков-векторов и итераторов
они ничего промямлить не могут (и в коде их ничего больше обычно и нет).

А когда понаперекрывают операций - так вообще караул. Читаешь код, и... никогда не знаешь, что за херня вот это понаписана.

В сад.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437206
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешно, не правда ли? Ну вот!
И вам смешно, и даже мне...
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37437492
novexelf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VanoPro,

Обычно на С/С++ используют указатели, а также циклы стараются в обратную сторону крутить, поэтому можно переписать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
{
	double Res =  0 . 0 ;
	double MaxVal = -DBL_MAX;
	double MinVal = DBL_MAX;
	const double *p = v;

	for (int i = Count; i; i--, p++)
	{
		if (*p > MaxVal) MaxVal = *p;
		if (*p < MinVal) MinVal = *p;
	}
	
	p = v;
	for (int i = Count; i; i--, p++)
		Res += sin( 2  * (*p - MinVal) / (MaxVal - MinVal) -  1 );
		
	return Res;
}

А как будут дела обстоять, если написать загрузку dll и вызов функций из С++?
Кстати говоря компиляторы бывают разные и по разному они оптимизируют, и компилятор от Intel в некоторых момента может генерить лучший код чем компилятор от Microsoft и наоборот.

Какой смысл вообще выяснять? допустим кто-то быстрее и что? нужно сразу перескакивать на самый быстрый?
Главное, чтобы работало с приемлемой скоростью, а все остальное мышиная возня. Уже не раз убеждался, что людям, которым я сдаю работу, глубоко по барабану, как оно там у меня работает, иногда они просят сделать быстрее или увеличить период обрабатываемых данных, но ни разу ни кто в мой код не заглянул, а все потому что они просто не понимают его ...
И красивая форма, над которой я возился некоторое время им до лампочки, пусть там будет обычная, пусть будет хоть консольное приложение, главное результат, потому что результат - это деньги, а красивая форма, это понты.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37438085
К. 0.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шаблоны позволяют повторяющийся код записать короче, одинаковый дублирующийся код для разных типов никуда в производимом компилятором машинном коде не девается, это и имел в виду написавший "Шаблоны порождают множественность инстанциаций"
шаблоны лишь позволяют укоротить эту вермишель дублирующегося кода в исходном коде,
позволяя писать более компактный, читаемый и менее подверженный ошибкам код
Искренне Ваш, К.О.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37438105
К. 0.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaNт.е. если список целых, то строки там быть ну никак не может.О! Вот тут то мы и подошли к самому главному вопросу, а часто ли нам нужен список целых, в который мы будем подставлять не только целые а еще и хэндлы окон, и строки, и ключи хэш-дикшнери? Сколько в % от кода в среднем современном энтерпрайз приложении выигрывает от применения шаблонов/обобщений?
Древний фортран например обходился без обобщений, если функция от INT, то никто не умудрялся пихать в нее FLOAT
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37438151
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К. 0.Древний фортран например обходился без обобщений, если функция от INT, то никто не умудрялся пихать в нее FLOAT

может потому что на дрвевнем фортране больше решалось вычислительных задач? без сложных моделей.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37524040
в Delphi реализовано значительно лучше управление динамическим выделением и освобождением объектов, а в MS VC++ вообще никак... большинство кодеров на С++ не сталкивается с проблемой фрагментации памяти, а я вот недавно конкретно потрах..ся пока обратно на Delphi не пересел. сразу скажу, для умников, проблема не связана с оптимальностью кода. долго пытался юзать различные сторонние библиотеки C++, но потом плюнул - нахрена изобретать велосипед зная что в делфи всё это уже есть, и ОТЛИЧНО работает, и работает очень быстро....

и ещё. недавно коллегам-теоретикам начинающим большой комерческий проект на C++ сделал по этому поводу замечание, что мол желательно заренее подумать об этой проблеме, на что они поморгали глазками - это всё ересть. эх посмотрю я на их рожи через пару лет...
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37524055
I dont know
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
novexelf,

А зачем цикл крутить в обраную сторону, а не вперёд, так быстрее?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37524231
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knownovexelf,

А зачем цикл крутить в обраную сторону, а не вперёд, так быстрее?

да и просто удобней(а тк да, и не надо каждый раз проверять на равенство)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37524607
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько умных речей =)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37524933
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knownovexelf,

А зачем цикл крутить в обраную сторону, а не вперёд, так быстрее?В ассемблере 8086 есть команда Loop которая крутит цикл в обратную сторону.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531024
qwerty_odin_takoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I dont knownovexelf,

А зачем цикл крутить в обраную сторону, а не вперёд, так быстрее?
Не думаю. Просто логика меняется.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531049
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty_odin_takoyI dont knownovexelf,

А зачем цикл крутить в обраную сторону, а не вперёд, так быстрее?
Не думаю. Просто логика меняется.Старые привычки старых сишников, которые хорошо осведомлены были о том в какой ассемблерный код превращается программа.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531273
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoffqwerty_odin_takoyпропущено...

Не думаю. Просто логика меняется.Старые привычки старых сишников, которые хорошо осведомлены были о том в какой ассемблерный код превращается программа.
Если параметр цикла будет каким-то образом участвовать при адресации
к диску или памяти - мы получим просадку производительности. За
что боролись на то и напоролись. Аккурантее надо.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531277
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли параметр цикла будет каким-то образом участвовать при адресации
к диску или памяти - мы получим просадку производительности. За
что боролись на то и напоролись. Аккурантее надо.30 лет назад на IBM-ках не было виртуальной памяти.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531297
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffmaytonЕсли параметр цикла будет каким-то образом участвовать при адресации
к диску или памяти - мы получим просадку производительности. За
что боролись на то и напоролись. Аккурантее надо.30 лет назад на IBM-ках не было виртуальной памяти.

Была
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531323
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Worobjoffпропущено...
30 лет назад на IBM-ках не было виртуальной памяти.

Была
На писишках - не было.
Я про IBM-PC, про процессор 8086 и 80286, и про язык С для них.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531377
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffGluk (Kazan)пропущено...


Была
На писишках - не было.
Я про IBM-PC, про процессор 8086 и 80286, и про язык С для них.

А вот 80286 не было
8086 правда уже был, но тока тока появился.
И да, язык C был не для них
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531386
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoffпро процессор 8086 и 80286, и про язык С для них.
вообще-то для PDP-11
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531397
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилWorobjoffпро процессор 8086 и 80286, и про язык С для них.
вообще-то для PDP-11
Да, но рекомендация крутить циклы вниз до нуля пошла от писишек и их процессоров семейства x86
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531431
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffИзопропилпропущено...

вообще-то для PDP-11
Да, но рекомендация крутить циклы вниз до нуля пошла от писишек и их процессоров семейства x86

источник?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37531548
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Worobjoffпропущено...

Да, но рекомендация крутить циклы вниз до нуля пошла от писишек и их процессоров семейства x86

источник?
Да забейте. Из всех оптимизаций это самая слабая. От неё больше вреда
чем пользы. Ну в крайнем случае для ассемблера.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37544961
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNПоясним чупачупсуВ результате современный начинающий говнокодер программист уже не может думать динамическим массивом (realloc), ибо атрофия мозга.

мда уж. параметрический полиморфизм - важный аспект типизации.Что-то мне кажется, что настоящий параметрический полиморфизм был бы, если бы мы могли написать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
	 void  func1(List<T> x) {
		
	}
	
	 void  finc2(List<?  extends  T> y) {
		func1(y);
	}

То есть, если бы не было erasure.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37545579
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Java, в смысле.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37545585
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEugeneZyK_BotaNпропущено...


мда уж. параметрический полиморфизм - важный аспект типизации.Что-то мне кажется, что настоящий параметрический полиморфизм был бы, если бы мы могли написать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
	void func1(List<T> x) {
		
	}
	
	void finc2(List<? extends T> y) {
		func1(y);
	}
То есть, если бы не было erasure.

полный пример кода можно, а то я в первую очередь не пойму, зачем вам "<? extends T>" вместо обычного "Т".
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37545599
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEugene,

а вообще - "параметрический полиморфизм" - годная вещь, но в жаве он не работает не из-за стирания типов.


хороший годный пример параметрического полиморфизма - в языке хаскельь, подобный функционал хаскель хотел прикрутить к новому стандарту с++(под названием концепты), но там были проблемы совместимости с поведением языка си.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37545755
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNполный пример кода можно, а то я в первую очередь не пойму, зачем вам "<? extends T>" вместо обычного "Т".

Пример вымышленный, можно было написать то же самое короче
Код: plaintext
List<Object> list =  new  ArrayList<String>();

Понятно, что если такое допустить то сам смысл дженериков теряется. Но тогда был бы настоящий полиморфизм - с поздним связыванием. Но позднее связывание как раз и невозможно из-за стирания. Конечно, именно для параметризованных коллекций это не нужно(смысл ограничения типов теряется, как уже было сказано). А вот возможность присвоить переменной типа Т объект типа ? extends T была бы полезна. Есть метод, принимающий параметр типа Т, передаём в него наследника Т и вызываем у него какой-то метод. И это будет именно метод наследника, а не супертипа, а он то нам и нужен.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #37545774
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEugeneZyK_BotaNполный пример кода можно, а то я в первую очередь не пойму, зачем вам "<? extends T>" вместо обычного "Т".

Пример вымышленный, можно было написать то же самое короче
Код: plaintext
List<Object> list = new ArrayList<String>();
Понятно, что если такое допустить то сам смысл дженериков теряется. Но тогда был бы настоящий полиморфизм - с поздним связыванием. Но позднее связывание как раз и невозможно из-за стирания.

эээ. не путай полиморфизмы ))
есть ad-hoc полиморфизм(тот который с поздним связыванием)
а есть параметрический полиморфизм.

не путай эти два совершенно разных полиморфизма.

XEugeneZyK_BotaNполный пример кода можно, а то я в первую очередь не пойму, зачем вам "<? extends T>" вместо обычного "Т".

Пример вымышленный, можно было написать то же самое короче
Код: plaintext
List<Object> list = new ArrayList<String>();


а это да, огромный недочет жабы, но не параметрического полиморфизма.

и вообще - параметрический полиморфизм - штука статическая а не динамическая.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Delphi быстрее С++?
    #38084347
novexelf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересный материал:

Кто сегодня самый шустрый-3?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #38084363
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то автор загнал своими тестами Intel C++ в такую задницу.
Неужели не мог там хоть флажки оптимизации покрутить. Хех...
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #38084590
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомневаюсь, что автор статьи понимает о чем пишет.(рассуждения про управляемые среды доставляют)
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #38084612
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю из ссылок, автор - некто Владислав Чистяков, Технический редактор журнала.
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #38084627
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как компиляторы вычисления n0-n3 оптимизируют?
...
Рейтинг: 0 / 0
Delphi быстрее С++?
    #38084634
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать продифференцировать

Код: plaintext
1.
2.
3.
4.
n0 = (-t * ((1 - t) * (1 - t))) / 2;
n1 = (2 -5 * t * t + 3 * t * t * t) / 2;
n2 = (t / 2) * (1 + 4 * t - 3 * t * t);
n3 = -(( t * t) / 2) * (1 - t);



и учитывать дельта-t на каждой итерации. Вроде как
степень понизим.
...
Рейтинг: 0 / 0
113 сообщений из 113, показаны все 5 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Delphi быстрее С++?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]