Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> .NET тормозит? 
:(
    Опции темы
stab
  Дата 1.9.2003, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



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

Код

// Delhi

procedure TForm1.Button1Click(Sender: TObject);
var
 i: Integer;
 z: Int64;
 st, fn: Cardinal;
begin
 z := 0;
 st := GetTickCount;
 for i := 1 to 1000000000 do Inc(z);
 fn := GetTickCount;
 ShowMessage(IntToStr(z) + #13 + FloatToStr((fn - st) / 1000));
end;



Код

// C#

static void Main(string[] args)
{
long z = 0;
DateTime st = new DateTime(DateTime.Now.Ticks);
for (int i = 0; i < 1000000000; i++, z++);
DateTime fn = new DateTime(DateTime.Now.Ticks);
Console.WriteLine(z);
Console.WriteLine(fn - st);
Console.ReadLine();
}


запустили, получили:

Delphi: ~4.6 sec
C#: ~4.5 sec

это еще пол беды smile.gif идем далее -- запуск без отладчиков, т.е. отдельным экзешником:

Delphi: ~4.6 sec
C#: ~2.5 sec

гы-гы, может мы что не так делали smile.gif


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Baa
Дата 1.9.2003, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



Код на С# немного не честен по отношению к Дельфи.
Честнее будет так: for (int i = 0; i < 1000000000; i++) z++;
Тогда результат у Шарпа становится хуже smile.gif
з.ы. хорошие ж у вас компы %) у меня сие чудо аж 12 секунд творится...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
stab
Дата 1.9.2003, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



хм, а у нас без разницы, что с телом цикла что без, хм... :\


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Baa
Дата 1.9.2003, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



cully, да, кстати, а что из себя представляет Inc? функция ведь? значит и в шарпе надо добавить чтобы вызывалась функция инкрементации.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
stab
Дата 1.9.2003, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



судя по коду нет:

Код

Unit1.pas.35: Inc(z);
add  dword ptr [ebp - $08], $01
adc  dword ptr [ebp - $04], $00


похоже все дело в Int64, его реализация в Delphi оставляет желать лучшего smile.gif если заменить на Longword, то все встает на свои места, т.е. производительность сравнивается.

з.ы. точнее операция Inc, плохо реализована, хотя хз

Это сообщение отредактировал(а) cully - 1.9.2003, 22:55


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Baa
Дата 1.9.2003, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



А другие тесты производительности не пробовал проводить? Мне все же кажется, что С# должна быть много тормозней той же Дельфи.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
stab
Дата 1.9.2003, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



сидим думаем что бы такое написать что б пототестить. Есть идеи?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Unregistered
Дата 2.9.2003, 11:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может протестировань на счет работы с памятью ?
  Вверх
Baa
Дата 2.9.2003, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



cully, давай стандартный тест - запись итемов из листбокса в файл.
Кстати, уже есть результаты теста Visual C++


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
CrAlex
Дата 2.9.2003, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.5.2003
Где: Ростов на Дону

Репутация: нет
Всего: нет



А реально делфи более тормознее smile.gif уж больно кривовато сделаноsmile.gif)

Шарп рульsmile.gif (хоть сам все еще сижу в основе под делфей и VB правда дотНЕТ)
PM MAIL WWW ICQ   Вверх
Baa
Дата 3.9.2003, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



Цитата
уж больно кривовато сделано

И в чем конкретно кривоватость заключается?


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
stab
Дата 4.9.2003, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Цитата
давай стандартный тест - запись итемов из листбокса в файл.

давай, сколько итемов и с каким текстом?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Baa
Дата 5.9.2003, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



10000 элементов с текстом "First Item"
Результаты на С++. Там есть и код, токо его надо немного изменить, чтобы токо один итем заносил, измеряем время занесения и записей в листбокс, и время записи в файл, и все вместе.
http://forum.vingrad.ru/index.php?act=ST&f...indpost&p=73910


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 5.9.2003, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



Сие на моем компе выполняется за пол секунды!!!
Код

private void button1_Click(object sender, System.EventArgs e)
 {
  listBox1.Items.Clear ();
  DateTime st = new DateTime(DateTime.Now.Ticks);
  for (int i = 0; i < 10000; i++)
   listBox1.Items.Add ("First Item");

  FileStream fs = new FileStream("c:\\test.txt", FileMode.CreateNew, FileAccess.Write);
  StreamWriter w = new StreamWriter(fs);

  for (int i = 0; i < listBox1.Items.Count; i++)
   w.Write(listBox1.Items[i]+"\r\n");
  w.Flush();
  w.Close();
  DateTime fn = new DateTime(DateTime.Now.Ticks);
  MessageBox.Show ((fn-st).ToString());
 }



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 5.9.2003, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 1
Всего: 12



Те же действие на С++ & WinAPI за 0.7 секунды.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.