Ошибки, баги, вопросы - страница 2315
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему by_ref работает медленнее by_val?
Откуда это следует?
Если код одинаковый
то и Pезультат (разница времени выполнения):
+12.221:0
+5.099:0
+0.149:0
-13.729:0
+14.531:0
-27.429:0
+26.405:0
-0.839:0
+5.400:0
-4.882:0
чередуется (+\-) в незначительных пределах
Откуда это следует?
Захотел поставить оценку в КБ и не получилось. И судя по тому, что последние публикации вовсе не имееют оценок, то похоже, что эта проблема не только у меня.
Да, не работает.
У меня в циклах ref и val одинаковый код (сравнение более менее корректное), а у Вас разный
Да, разный. Но вопрос остается актуальным. Почему val-вариант заметно быстрее ref?
Да, разный. Но вопрос остается актуальным. Почему val-вариант заметно быстрее ref?
может ref вариант оптимизируется компилятором хуже - кто ж знает.
как по мне оба варианта должны компилироваться примерно в одинаковый код или даже в полностью одинаковый, но компилятор считает по-другому
может ref вариант оптимизируется компилятором хуже - кто ж знает.
как по мне оба варианта должны компилироваться примерно в одинаковый код или даже в полностью одинаковый, но компилятор считает по-другому
Вопрос на самом деле предназначался для разработчиков, чтобы была база для разоборок в причинах расхождений.
Обычно для скорости стараюсь все передавать по ссылке. И это было оправдано в каких-то билдах. Но ней сейчас, похоже.
+1. Похоже, что-то сломалось. Билд 1881 x64. Win 10. При запуске грузит проц на 20+% (i5 8600k) и оперативу на 650-700 мб (без увеличения).
В диспетчере задач состояние "Не отвечает".
Причем другой терминал 1881 (не Открытие) запускается нормально.
Добавлено:
В итоге все-таки загрузился. Однако загрузка длилась крайне долго - это не нормально. После закрыл терминал и открыл снова. Открылся моментально. Видимо, с подгрузкой данных появились какие-то проблемы.
Решилось переустановкой терминала. Причем снес случайно и папку со всеми настройками и графиками) Всё заново чертил, зато работает как часы теперь.
Это было не обязательно. Можно было просто удалить файл news.dat.
может ref вариант оптимизируется компилятором хуже - кто ж знает.
как по мне оба варианта должны компилироваться примерно в одинаковый код или даже в полностью одинаковый, но компилятор считает по-другому
А какая связь между конечным кодом и временем его выполнения?
Для примера изменим ... так чтобы циклы стали полностью одинаковыми
Результат:
by_ref took 18354.547 milliseconds: sum=1865600ll
by_val took 18318.319 milliseconds: sum=1861628ll
by_ref took 18416.747 milliseconds: sum=1904488ll
by_val took 18221.978 milliseconds: sum=1907860ll
by_ref took 18301.009 milliseconds: sum=1757988ll
by_val took 18545.258 milliseconds: sum=1949720ll
by_ref took 18373.648 milliseconds: sum=1867160ll
by_val took 17972.432 milliseconds: sum=1760308ll
by_ref took 19426.076 milliseconds: sum=1795564ll
by_val took 19177.485 milliseconds: sum=1826360ll
примерно такой же... или Вы думаете что компилятор создал в одинаковых циклах разный код?
Напомню - там было например такое
by_ref took 13889.424 milliseconds: sum=-1000000ll
by_val took 14135.603 milliseconds: sum=-1000000ll
и разный код... а тут примерно такая же разница по времени, но и код и сами функции совершенно одинаковые