Старый 14.07.2003, 17:36   #1   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Скорость будущего.

RomanPshenichny

C# в глаза не видел. Как он дружит с MMX/SSE?
Я бы написал свой тестовый пример и сравнил по скорости.
Только вот, что-то мне подсказывает что C/C++ будет побыстрее


Куда ему. Надо брать нормальные тесты, например, перемножение матриц,
а не вызовы функций. И смотреть как компилятор переведет код под SSE.
Imho, и не только мое, самый оптимизирующий компилер Intel C/C++ 7.0.
Только очееень медленно работает


Давайте проведём собственные тесты, по моему очень интересная тема

VC++ vs VB.NET vs VB6 vs C#

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

Время засекать как timeGetTime Lib "winmm.dll" ?
Лучше чтобы программа считала ~ 10 мин. И засечь секундомером.
  Ответить с цитированием
Старый 14.07.2003, 17:58   #2   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
LSL

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

Без ассемблера. Чистый язык (+ возможные расширения )
В C# и в VB6 есть 64 и 128-битные типы?
Т.е. MMX и SSE регистры вживую?

> Время засекать как timeGetTime Lib "winmm.dll" ?

Выше крыши хватит.
А еще можно в тиках считать.
  Ответить с цитированием
Старый 14.07.2003, 18:36   #3   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
RomanPshenichny 64 и 128-битные типы? есть в .NET , в VB6 нет.
Их можно отдельный тест без VB6.

Только не хитрить

И чтоб можно было перевести на другие языки.
  Ответить с цитированием
Старый 15.07.2003, 00:40   #4   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Пару замечаний. Говоря си имею в виду седьмой без managed ext. конечно, и если тестить у меня, то проц мой Celeron 633, SSE2 нет.
  Ответить с цитированием
Старый 24.07.2003, 22:45   #5   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
Был занят.
Теперь более-менее свободен

Таки тест. Перемножение матриц. Матрицы выбираются случайным образом.

Чем больше MAX_MATRIX -- тем сильнее влияние на скорость кеша&памяти. ITERATION задает время исполнения теста.
  Ответить с цитированием
Старый 25.07.2003, 12:59   #6   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
RomanPshenichny
Главный зачинщик - LSL смылся из города .Когда будет неизвестно .
А я и так знаю . что быстрее .
Да и на VB или VB.NEt перекинуть не смогу в любом случаее.
  Ответить с цитированием
Старый 25.07.2003, 15:04   #7   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
Ну, как только -- так сразу.
  Ответить с цитированием
Старый 01.08.2003, 08:22   #8   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
LSL
Ты приехал?
  Ответить с цитированием
Старый 03.08.2003, 17:46   #9   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Половину перевёл, половину не можу.
Многоуважаемые Сишники, объясните другу Вэбэшнику что значат ваши:

template и operator, см. код.

На пальцах объясните, или на паскале хотя бы.

RomanPshenichny
Я очень редко сейчас в интернете...

Кстати в .NET есть класс Matrix который содержит разнообразные
методы для манипуляций над матрицами.
  Ответить с цитированием
Старый 03.08.2003, 18:22   #10   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
LSL

В Паскале этого нет
Почитай лучше книжки по C++.

template <typename T> T Random ( T max )
Возвращает случайное число, от 0 и до max.

inline float * operator [] ( int idx ) const
Операция доступа к элементам матрицы.

Так какая скорость?
Кто быстрее?
  Ответить с цитированием
Старый 05.08.2003, 11:44   #11   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
С .NET я так и не разобрался, поглядите код, где собака порыта ?
Наверное, Matrix нужно структурой а не классом делать...

И того:
VC++7 ~ 1.6

VB.NET(C#) ~ 22
Что-то не так, и это ясно видно.

VB6 ~ 3.4
Вполне реальная скорость для VB6.
  Ответить с цитированием
Старый 05.08.2003, 12:03   #12   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
LSL

Что-то с VB.NET не то...

Ты все в Release собирал, с отключенной нафиг Debug и с оптимизацией под максимальную скорость?
  Ответить с цитированием
Старый 05.08.2003, 12:29   #13   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
А вто что получилось у меня с вашими тестами
VB7 = 1,953
VB6 = 2,359
CPP = 1,531
Субьективно также .

( бинарники от LSL поскольку VB.NET а тем более VB6 у меня не стоит )
  Ответить с цитированием
Старый 08.08.2003, 01:12   #14   
Форумец
 
Аватар для is
 
Сообщений: 111
Регистрация: 04.02.2003

is вне форума Не в сети
RomanPshenichny Какие опции компайлера стоят в проекте (я его не скачивал)? Чего-то у плюсов отрыв мелковат
  Ответить с цитированием
Старый 01.09.2003, 00:50   #15   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Я вернулся.
  Ответить с цитированием
Старый 06.09.2003, 00:33   #16   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Что-то с VB.NET не то...

Ты все в Release собирал, с отключенной нафиг Debug и с оптимизацией под максимальную скорость?

Да, Release.

Что же за хрень ? У zic'а нормально а у меня нет.
В чём же секрет может быть... знаю только что у него
framework 1.1 а у меня 1.0(под него и компилировал)

NeoExpert протестируй ты, у тебя тоже 1.0 стоит...

---
ps:
Матрица у меня класс а не структура как на си, это тоже должно давать тормоз..позже попробую сделать как структуру.

И как я уже говорил в net есть уже класс Matrix, он наверняка оптимизирован под задачу....и наверно быстрее работает чем в си.

LSL добавил [date]1062797874[/date]:
---
И о пригодности для написания игр.

Мне кажется 10% потери производительности с головой окупятся огромными преимуществами .NET, интересно что ещё
может помешать платформе стать инструментом игродела ??
  Ответить с цитированием
Старый 06.09.2003, 00:52   #17   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
Что же за хрень ? У zic'а нормально а у меня нет.
В чём же секрет может быть... знаю только что у него
framework 1.1 а у меня 1.0(под него и компилировал)

У меня и то и другое .
Framework 1.1 стоял давно ,а 1.0 вместе с VS NET 7 появился .

zic добавил [date]1062798873[/date]:
интересно что ещё
может помешать платформе стать инструментом игродела ??

Глючность .
  Ответить с цитированием
Старый 06.09.2003, 00:58   #18   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Глючность.
Но её нет в отличии от её большей вероятности в C++ !
Или есть убедительный пример ?
  Ответить с цитированием
Старый 06.09.2003, 01:14   #19   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
Dashboard
Janus ( RSDN offline client)
С#DevelopmentEditor
Дальше ?

Просто забил с экспериментами .
На самом деле у NEt есть нектоорые приимущества перед другими вещами , но не там где ты думаешь .
Это в первую очередь разработка инструментов администрирования и управления .
Очень удобно взаимодействовать с ActiveDirectory
Встроенные средства работы с WMI и прочее .
  Ответить с цитированием
Старый 06.09.2003, 01:24   #20   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
zic ну незнаю, незнаю....
Я тоже могу перечислеть ряд программ которые работают прекрасно... но лучше воздержусь. Будем тестировать.
  Ответить с цитированием
Старый 06.09.2003, 13:43   #21   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Я тестирую ещё раз:
Моя система:
.NET Framework 1.0, WinXP Pro
Celeron 633, RAM 256, i815.

---------------------------
Visual C++7 ~1.5
Visual Basic 6 ~3.0
Visual Basic .NET ~21.3 (!)
---------------------------
(код в vb.net не идеальный)

Что то мы напутали...
NeoExpert, протестируй ещё, там три exe-файла.
  Ответить с цитированием
Старый 06.09.2003, 17:36   #22   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Torvic
VB по моему не умеет делать консольных приложений.
VB умеет делать консольные приложения.

А я на асме сделаю аналогичный тест. Скоро выложу.
Да..транслируй с Сишного примера...перемноржение матриц.

Ну вы и намудрили. Уж если делать тест, то аналогичные файлы делайте. В С у вас консольное приложение(хоть и включили windows.h). Значит РЕ другое. Не задумывались?

Нет разницы. Я выходные данные хоть графиком выдам, абы матрицы быстро перемножались.
  Ответить с цитированием
Старый 08.09.2003, 15:36   #23   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
NeoExpert ВааУ !
  Ответить с цитированием
Старый 08.09.2003, 17:17   #24   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Внимание я модернизировал код, и теперь тест на vb7 использует структуры. У меня производительность увеличилась в два раза.

Жду результатов от zic'a и эксперта..и других.
  Ответить с цитированием
Старый 08.09.2003, 20:58   #25   
Форумец
 
Аватар для RomanPshenichny
 
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 44

RomanPshenichny вне форума Не в сети
> Тем более что консольному приложению выделяется очень
> мало памяти, совершенно не выделяется виртуальной
> памяти, приоритет наиболее низкий, и это не говоря о РЕ...

Кто тебе рассказал такие страшные сказки?
  Ответить с цитированием
Старый 08.09.2003, 22:27   #26   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
NeoExpert
LSL "ВааУ" что это значит ???
Это значит что тест на Бейсике обошел по скорости тест на Си++ ! Наконец-то это свершилось ((((((((: сколько лет...

А вот testVB7M (struct) опять выкинул фокус...

На будущее, прошу делать, чтоб консоль VC не закрывалась после выполнения
А вот это уже к Роману Пшеничному, его код

Torvic
Я валяюсь

ps:
Не воспринимайте близко к сердцу мои слова...
  Ответить с цитированием
Старый 09.09.2003, 01:43   #27   
Форумец
 
Сообщений: 4,909
Регистрация: 08.04.2003
Возраст: 42

zic вне форума Не в сети
vb6=2.617
vb7=10 ??!!! ХЗ
cpp=1.719

Комп подгружен одной виртуальной машиной
  Ответить с цитированием
Старый 09.09.2003, 15:51   #28   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
Ещё раз кладу архив с тестами (new_tests.zip) что бы небыло путанницы:
Тестируется четыре решения на трёх языках.

Пока результат по тестам Эксперта таков:

VC7 - 1.0
VB7 - 0.98 (VB7M - 6.2)
VB6 - 1.4


Предлагаю протестировать ещё, не забудьте поубивать все фоновые задачи.
  Ответить с цитированием
Старый 11.09.2003, 19:39   #29   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети
NeoExpert
Для начала надо сделать практически одинаковый код на Си и на Бейсике, а потом сравнивать.

Дык код и есть одинаковый, иначе и смысла не было !
  Ответить с цитированием
Старый 19.09.2003, 23:49   #30   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 41

LSL вне форума Не в сети

Но иногда вам не нужна вся эта гибкость. Иногда вы хотите использовать что-то настолько же простое, как структура, и не хотите лишних затрат производительности. CLR предоставляет возможность определить то, что называется типом значения, и интерпретируется во время компилирования как структура. Типы значений управляются стеком и предоставляют вам скорость структуры. Как и ожидалось, они также имеют ограниченную гибкость (например, у них нет наследования). Но в экземплярах, в которых вам нужно использовать структуру, типы значений обеспечивают невероятное повышение скорости.

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


Вот это как раз и обьясняет медлительность моего теста со структурами.
Это значит что тест с классами который по скорости на уровне Си++ будет легко побеждён тестом со структурой value type !

Basic быстрее Си++
  Ответить с цитированием
Поиск в теме: 


Опции темы

Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind