Здравствуйте VladD2, Вы писали:
VD>Здравствуйте _vovin, Вы писали:
VD> V>>Еще раз воспроизведу свои результаты:
V>>C# — 530/2030 (прямой/виртуальный) V>>VC6 — 1370/1550
V>>VisualWorks — 1500 V>>Strongtalk — 700
V>>М-да. Но результат вполне согласуется с теорией. V>>Только вот VC6 что-то подкачал на прямом вызове. V>>Видимо, C# исключает внутренний вызов, а VC6 нет.
VD>Ты просто не добавил в VC6 опцию /Ob2. Если добавишь, то все встанет на свои места.
У меня реализация метода находится в cpp,
тогда эта опция не влияет.
Я думаю, только самые простые методы стоит
инлайнить, иначе придется часто перекомпилировать
множество файлов да и размер модуля станет большим.
VD> VD>PS
VD>Ты на VB6 перепиши. Вот посмешся. По большому счету ведь Шарп с VB нужно сравнивать. Ведь простота разработки у него больше на VB походит, чем на С++.
Сравнение оно интересно не само по себе, а как
отражение проблем производительности в ОО программах.
Бенчмарки нужны правильные, а не только вычисление
детерминанта матрицы.
Здравствуйте _vovin, Вы писали:
VD>>Ты просто не добавил в VC6 опцию /Ob2. Если добавишь, то все встанет на свои места.
V>У меня реализация метода находится в cpp, V>тогда эта опция не влияет.
Она всегда влияет. Эта опция заставляет подставлять маленькие функции вместо их вызова. Причем по фигу где описана функция.
V>Я думаю, только самые простые методы стоит V>инлайнить, иначе придется часто перекомпилировать V>множество файлов да и размер модуля станет большим.
Компилятору лучше видно какие методы простые, а какие сложные. Мы опытным путем выяснили, что врубание /Ob2 повышает скорость до 5-6 раз при разбухании программы на 10-20 процентов.
V>Бенчмарки нужны правильные, а не только вычисление V>детерминанта матрицы.
Дык вноси прпдложения... Вот сейчас мы работаем над сравнением передачи данных по сети разными технологиями. Подумывали о создании большого компонзитного теста. Но ой как не просто создать равнаценные приложения на разных языках и платформах. Тестирование же вычислительной скорости хотя и приблизительно, но говорит о возможностях системы.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Lloyd, Вы писали:
VD>>>В любом случае мерять лучше Environment.TickCount-ом.
L>>Почему
VD>Точность выше. Тем боле что соображений против нет вроде как.
Точность здесь абсолютно не нужна. Так что соображений за тоже вроде как нет
Для чистоты эксперемента на методы стоит вешать
[MethodImpl(MethodImplOptions.NoInlining)].
А так, совершенно не понятно что именно было измерено... Насколько хорошо
JIT производит inline пустых методов?
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Для чистоты эксперемента на методы стоит вешать TK>[MethodImpl(MethodImplOptions.NoInlining)]. TK>А так, совершенно не понятно что именно было измерено... Насколько хорошо TK>JIT производит inline пустых методов?
В топике не затрагивались вопросы чистоты экперимента
А если решить создать тест, то в любом случае он всех не удовлетворит...
по крайней мере, прогресс налицо...