powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему тормозит C++?
25 сообщений из 149, страница 2 из 6
Почему тормозит C++?
    #35965493
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
^__^,

Ну у меня Athlon ~1.9GHz RAM: 768mb.
Кинь код на ява - могу протестить на своей машине.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965495
Ынтырпрайсс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clihltСиПиПи,

И еще скажи.. вот если .NET такой весь из себя оптимальный, так почему Microsoft написала SQLSERVER 2005 ( покрайней мере сам екзешник службы ) на C++ ( или С ) ?
И самое интересное - шустрый компилятор шарпа csc.exe тоже написан на C++( C ), а не на .NET языках.

ну изначально-то он плюсах был написан. а раскручивать нах.. нужно. но C++ говно по определению, а пейсали на нем только потому что вынуждены были пейсать и не более того.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965532
^__^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
clihlt,

Код: 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.
 public   class  Main {

     private   int  a;
	 private   int  b;
     private   int  c;
    
     public  Main( int  a) {
    	 this .a = a;
    	 this .b = a;
    	 this .c = a;    	
    }
    
     void  print() {
	    System.out.println(a + " " + b + " " + c);
	}
    
     private   final   static   int  NUM =  10000000 ;
    
	/**
	 * @param args
	 */
	 public   static   void  main(String[] args) {
		 long  start = System.currentTimeMillis();
		Main[] arr =  new  Main[NUM];
		 for  ( int  i =  0 ; i < NUM; i++) {
			arr[i] =  new  Main(i);
		}
		
		 long  finish = System.currentTimeMillis();
		System.out.println(finish - start);

	}

}


Запускал с параметрами -Xms512m -Xmx512m
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965587
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это всё "грязные" эксперименты. В java насколько мне известно, память устроена как лента транспортёра. И new Не ищет свободный блок, а просто тупо выделяет следующий блок справа. Это заставляет ленту двигаться. Создаётся иллюзия что new действительно работает быстро. Но вот затраты на сборку мусора (garbage collection), и уплотнение почему-то никто не посчитал и не учёл.

Короче, сравнения C-шного new и java-шного - это эксперименты в условиях "разных моделей" памяти.

И сравнивать надо эти модели в целом а не перформанс конкретного оператора.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965606
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
^__^,

на моем компе выдало
автор
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Main.main(Main.java:26)


если убрать один 0 в колличестве элементов, то 826 милисекунд.
Может откомпилил не правильно?

компилил
javac Main.java

запускал
java Main -Xms512m -Xmx512m
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965637
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
clihltСиПиПи,

И еще скажи.. вот если .NET такой весь из себя оптимальный, так почему Microsoft написала SQLSERVER 2005 ( покрайней мере сам екзешник службы ) на C++ ( или С ) ?
И самое интересное - шустрый компилятор шарпа csc.exe тоже написан на C++( C ), а не на .NET языках.

наследованный код. Переписывать дорого.

На Фортране, Коболе и языке БЭСМ-6 дохрена программ экплуатируется.

Но это не означает, что эти языки - верх совершенства.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965645
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам пишу и на С# и на С++.
Да new как оператор быстрее в С# и чисто математические операции тоже бустрее, но не стоит забывать про Garbage Collector.
Одним словом С# не как не может быть быстрее С++.
Там только еще можно учесть нюанс что JIT генерирует максимально оптимизированый код под данную архитектуру, а у С++ average оптимизация так как он не знает под какую архитектуру будет работать.
Но даже учитывая все это С++ в среднем значительно быстрее С#.
Об этом много говорить не стоит, просто поэкспереминтируйте напромер работы с массивами, шеь таблицами, сетами итд...
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965646
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если сравнивать скорость работы с выделение памяти тут любой из malloc сливает в разы, ибо поиск по связанному списку понятно на порядок медленние, чем выделение на верхушке стека.

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

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

опять же, откуда это следует?

а для C++ ведь тоже нужно писать по-нормальному собственный менеджер памяти с собственным сборщиком мусора во избежания "ада утечек памяти".
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965651
Критик глупостей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПиЕсли сравнивать скорость работы с выделение памяти тут любой из malloc сливает в разы, ибо поиск по связанному списку понятно на порядок медленние, чем выделение на верхушке стека.
А не поел бы ты гов...ца, малолетний долбо...бушко?

Выделение памяти - это единственная операция, на которой JVM и CLR имеют некое потенциальное
преимущество перед традиционными подходами.

Но только это вовсе не делает их средствами системного программирования?
И знаешь почему, малолетняя бестолочь?

Да потому что операция выделения памяти занимает от силы 1-2% всего времени жизни
типового, даже клиентского приложения.

Это так трудно понять пораженному с...мотоксикозом мозгу школьника?
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965652
Критик глупостей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПиа для C++ ведь тоже нужно писать по-нормальному собственный менеджер памяти с собственным сборщиком мусора во избежания "ада утечек памяти".

Не нужно.

Нужно разве для идиотов, которые так и не осилили простейшую конструкцию try catch aka finally
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965654
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик глупостейСиПиПиЕсли сравнивать скорость работы с выделение памяти тут любой из malloc сливает в разы, ибо поиск по связанному списку понятно на порядок медленние, чем выделение на верхушке стека.
А не поел бы ты гов...ца, малолетний долбо...бушко?

Выделение памяти - это единственная операция, на которой JVM и CLR имеют некое потенциальное
преимущество перед традиционными подходами.

Но только это вовсе не делает их средствами системного программирования?
И знаешь почему, малолетняя бестолочь?

Да потому что операция выделения памяти занимает от силы 1-2% всего времени жизни
типового, даже клиентского приложения.

Это так трудно понять пораженному с...мотоксикозом мозгу школьника?

где?
ты видел типовое приложение с типовым GUI и типовым обращением с ресурсами?

что такое "программа ест много ресурсов" знаешь? это память! из-за обьектов!

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

так где же код на с# )) быстро выделеяющий? без него все твои слова - просто треп. И ответь плиз как RTTI в шарпе отключить для объектов. А то вот написал я код под c++ выделяющий 10млн 12-ти байтовых объектов на c++ и на c# и получил, что прога на c++ сожрала приблизительно 100мб оперативы, а прога на c# 300мб.

Paradox
Там только еще можно учесть нюанс что JIT генерирует максимально оптимизированый код под данную архитектуру, а у С++ average оптимизация так как он не знает под какую архитектуру будет работать.


Вот в то что .NET начнет память выделять быстрее C++ я еще поверю. А вот в генерацию более оптимального кода врядли. Вопервых C++ прекрасно "знает" под какую архитектуру он будет работать и все это задается опциями компилятора.
Во вторых перед JIT стоит очень не простая задача - за очень короткий промежуток времени ( дабы запуск приложений не был очень долгим ) перегнать прогу из опкодов под виртуальный стековый процессор в прогу в опкодах под регистровый реальный процессор и выполнить оптимизацию. Задача это весьма не простая. У C++ есть гораздо больше времени на оптимизацию.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965660
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПиclihltСиПиПи,

И еще скажи.. вот если .NET такой весь из себя оптимальный, так почему Microsoft написала SQLSERVER 2005 ( покрайней мере сам екзешник службы ) на C++ ( или С ) ?
И самое интересное - шустрый компилятор шарпа csc.exe тоже написан на C++( C ), а не на .NET языках.

наследованный код. Переписывать дорого.

На Фортране, Коболе и языке БЭСМ-6 дохрена программ экплуатируется.

Но это не означает, что эти языки - верх совершенства.

ага.. Значит sql server и csc - это наследованный код. А микрософт офис ненаследованный. Его ж им не лень было на НЕТ языках переписать. А может микрософту всетаки стремновато переписывать то что критично к времени выполнения под net?
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965662
Критик глупостей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПичто такое "программа ест много ресурсов" знаешь? это память! из-за обьектов!
Нет. Программа, которая ест много ресурсов, это на Java или на .NET-те наструяченное говнецо.
Просто потому что там менеджер памяти идиотский.

Есть сомнения? Сравни потребности в памяти любого класса программ. К примеру utorrent (с++) c azureus (java), google desktop (c++) с Windows Sidebar (.NET).

Потребности в памяти в разы у "управляемых сред". Из-за чего, а?

СиПиПиа не производительность из-за "десять вложенных друг в друга циклов, который на Си выполняется быстрее".
Нет, ты точно кретин, как я посмотрю.

Что ты доказать тут хочешь, а? .NET, как и Java, специально создали для того, чтобы
сотни тысяч кодирующих обезъян или домохозяек смогли писать хоть какой-то софт
для текущих потребностей, по той простой причине, что нормальных программистов на С/C++
на всех задачи не хватает.

Ибо количество интеллекта на земле - величина постоянная, от популяции не зависящая.

И хоть что ты тут сейчас себе (и подобным) не рассказывай, но .NET и Java никогда не будут
средствами системного программирования, а уж тем более средствами написания
критичных для производительности или стабильности приложений.

Только вспомогательные, низкоквалифицированные задачи, вроде УЕВ или веб-серсивов.

Это тоже трудно понять?
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965665
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПиКритик глупостейСиПиПиЕсли сравнивать скорость работы с выделение памяти тут любой из malloc сливает в разы, ибо поиск по связанному списку понятно на порядок медленние, чем выделение на верхушке стека.
А не поел бы ты гов...ца, малолетний долбо...бушко?

Выделение памяти - это единственная операция, на которой JVM и CLR имеют некое потенциальное
преимущество перед традиционными подходами.

Но только это вовсе не делает их средствами системного программирования?
И знаешь почему, малолетняя бестолочь?

Да потому что операция выделения памяти занимает от силы 1-2% всего времени жизни
типового, даже клиентского приложения.

Это так трудно понять пораженному с...мотоксикозом мозгу школьника?

где?
ты видел типовое приложение с типовым GUI и типовым обращением с ресурсами?

что такое "программа ест много ресурсов" знаешь? это память! из-за обьектов!

а не производительность из-за "десять вложенных друг в друга циклов, который на Си выполняется быстрее".

Вот как раз НЕТ овые проги и жрут больше памяти. Изза того что к каждому объекту - хочешь ты того или нет цепляется RTTI.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965667
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Вопервых C++ прекрасно "знает" под какую архитектуру он будет работать и все это задается опциями компилятора.

JIT прекрасно знает, на каком именно компьютере будет выполняться программа. И оптимизирует именно под эту машину.

а компилятор СиПиПи - нет. Он не знает особенности целевой архитектуры, на которой РЕАЛЬНО будет выполняться код.

>Во вторых перед JIT стоит очень не простая задача - за очень короткий промежуток времени ( дабы запуск приложений не был очень долгим ) перегнать прогу из опкодов под виртуальный стековый процессор в прогу в опкодах под регистровый реальный процессор и выполнить оптимизацию. Задача это весьма не простая

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

JIT компиляция выполняется (и должна выполняться) ровно ОДИН раз во время ПЕРВОЙ загрузки соответствующего модуля, а еще лучше - после инсталляции ngen-ом для всех сборок.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965668
Критик глупостей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clihltВот как раз НЕТ овые проги и жрут больше памяти. Изза того что к каждому объекту - хочешь ты того или нет цепляется RTTI.

Уж лучше бы ты сидел там, в своем Донецке, да помалкивал.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965672
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПи>Вопервых C++ прекрасно "знает" под какую архитектуру он будет работать и все это задается опциями компилятора.

JIT прекрасно знает, на каком именно компьютере будет выполняться программа. И оптимизирует именно под эту машину.

а компилятор СиПиПи - нет. Он не знает особенности целевой архитектуры, на которой РЕАЛЬНО будет выполняться код.

>Во вторых перед JIT стоит очень не простая задача - за очень короткий промежуток времени ( дабы запуск приложений не был очень долгим ) перегнать прогу из опкодов под виртуальный стековый процессор в прогу в опкодах под регистровый реальный процессор и выполнить оптимизацию. Задача это весьма не простая

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

JIT компиляция выполняется (и должна выполняться) ровно ОДИН раз во время ПЕРВОЙ загрузки соответствующего модуля, а еще лучше - после инсталляции ngen-ом для всех сборок.

ну дак почему тогда код на c++ выполняется быстрее? не веришь? давай реализуем любой алгоритм ты на шарпе, я на C++ и сравним результаты выполнения.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965673
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик глупостейclihltВот как раз НЕТ овые проги и жрут больше памяти. Изза того что к каждому объекту - хочешь ты того или нет цепляется RTTI.

Уж лучше бы ты сидел там, в своем Донецке, да помалкивал.
Тут и сижу. Чего не правильно то сказал?
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965674
Критик глупостей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПи>Вопервых C++ прекрасно "знает" под какую архитектуру он будет работать и все это задается опциями компилятора.

JIT прекрасно знает, на каком именно компьютере будет выполняться программа. И оптимизирует именно под эту машину.
И что дальше? Вообще не аргумент, из знаний размера кеша или модели процессора можно выжать ну максимум 1-10% таким путем, погоды вообще не делает.

СиПиПиа компилятор СиПиПи - нет. Он не знает особенности целевой архитектуры, на которой РЕАЛЬНО будет выполняться код.
И отлично. Всех устраивает.

Тебя нет? Ну открой для себя Gentoo, там тоже малолетние прыщи всю систему под свой процессор ночами оптимизируют. Поинтересуещься, много ли они там наоптимизировали, бугага.

СиПиПи
>Во вторых перед JIT стоит очень не простая задача - за очень короткий промежуток времени ( дабы запуск приложений не был очень долгим ) перегнать прогу из опкодов под виртуальный стековый процессор в прогу в опкодах под регистровый реальный процессор и выполнить оптимизацию. Задача это весьма не простая генерация оптимального машинного кода по байткоду выполняется гораздо быстрее, чем построение дерева по тексту программы и его анализ в 2 и более прохода.

JIT компиляция выполняется (и должна выполняться) ровно ОДИН раз во время ПЕРВОЙ загрузки соответствующего модуля, а еще лучше - после инсталляции ngen-ом для всех сборок.
Ну и зачем ты сюда скопипастил этот экскремент, который ты сам даже понять не в состоянии?
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965676
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clihlt
Вопервых C++ прекрасно "знает" под какую архитектуру он будет работать и все это задается опциями компилятора.

Да но это максимом можно сделать в период компилчции, и стоит перенести бинарник под другую архитектуру и ....
А JIT это делает runtime ....
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965677
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>И хоть что ты тут сейчас себе (и подобным) не рассказывай, но .NET и Java никогда не будут
средствами системного программирования, а уж тем более средствами написания
критичных для производительности или стабильности приложений.

а они никогда не позиционировались как "языки системного программирования"

а вот C++ никогда не был и не будет нормальным инструментом для создания

1) прикладного десктоп софта из-за полного хаоса в стандартных библиотеках.
2) Web приложений из-за небезопасности С++ и полного отсутствия фреймворков/либ. Извините, но говорить о безопасности и стабильности С++ может только человек, никогда не программировавший на нем. Этот язык создан для создания самому себе граблей.
3) прикладного серверного ПО, опять же из-за полного отсутствия соответствующих библиотек и фреймворков

а это - 95% всего создаваемого софта.
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965680
СиПиПи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Ну и зачем ты сюда скопипастил этот экскремент, который ты сам даже понять не в состоянии?

ты Paint.NET видел?
что он делает при окончании установки?

правильно ngen !
...
Рейтинг: 0 / 0
Почему тормозит C++?
    #35965683
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СиПиПиправильно ngen !

Что, ngen, он просто сэкономит вам память и предаст относительную скорость, но не как не сделает из С# C++.
...
Рейтинг: 0 / 0
25 сообщений из 149, страница 2 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему тормозит C++?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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