forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   dword to float4 и обратно (http://forum.boolean.name/showthread.php?t=19690)

Samodelkin 19.02.2015 17:11

Ответ: dword to float4 и обратно
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 293356)
А всякие сторонние библиотеки ты тоже собираешь без оптимизации, ну например булет?

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

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

А вот например тот же dx9 -- ты можешь посчитать хеш-суммы их дллок за последние 5 лет -- они все одинаковые, существует только один вариант бинарников, которые хорошо оттестирован.

mr.DIMAS 19.02.2015 17:14

Ответ: dword to float4 и обратно
 
Цитата:

Буллет я собирал без оптимизации
Без оптимизации он медленнее в 3-5 раз.

И вообще всё это недоверие больше походит на паранойю

Samodelkin 19.02.2015 17:26

Ответ: dword to float4 и обратно
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 293358)
Без оптимизации он медленнее в 3-5 раз.

И вообще всё это недоверие больше походит на паранойю

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

Я же не призываю не пользоваться им вообще, я говорю что нужно проверять его работу, а проверка требует сил времени и это надо учитывать, стоит ли оно того. Допустим если буллет становится в 5 раз быстрее, то возможно в этом случае стоит, но тогда надо хорошенько проверить его работу, и главное тестировать заного если ты обновил версию Буллета, а это значит что ты впринципе не сможешь оперативно обновлять Буллет, обычно собирают одну версию на весь жизненный цикл проекта.

mr.DIMAS 19.02.2015 17:32

Ответ: dword to float4 и обратно
 
Цитата:

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

Samodelkin 19.02.2015 17:39

Ответ: dword to float4 и обратно
 

Давай подождём когда у твоего Mine начнётся открытое бетатестирование, так что бы хотябы 1к человек проверело, и там посмотрим кому придется лишний раз ебать мозг.

Я даже поменяю своё мнение если у тебя пройдёт всё без проблем, пока же я ориентируюсь на опыт других разработчиков.

mr.DIMAS 19.02.2015 17:47

Ответ: dword to float4 и обратно
 
Стрелки не нужно переводить. Я хочу услышать обоснованный ответ, зачем смотреть то что там компилятор наворотил? Наверное: "потому, что я могу" или "потому, что я хочу"

Samodelkin 19.02.2015 17:54

Ответ: dword to float4 и обратно
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 293362)
Стрелки не нужно переводить. Я хочу услышать обоснованный ответ, зачем смотреть то что там компилятор наворотил? Наверное: "потому, что я могу" или "потому, что я хочу"

Вот упала твоя программа, ОС тебе вернул дамп памяти и контекст процесса (состояние регистров, стека и т. п.). чо ты с этим будешь делать если у тебя на руках тока С++ код, который никак не коррелируется в тем асмом который после оптимизации вышел?

mr.DIMAS 19.02.2015 18:01

Ответ: dword to float4 и обратно
 
Соберу без оптимизации, найду баг, уберу его, запилю опять с оптимизацией. Если говорить про мою игру, то без оптимизатора она работает в 6 раз медленнее( 20 фпс против 120 )

Samodelkin 19.02.2015 18:28

Ответ: dword to float4 и обратно
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 293365)
Соберу без оптимизации, найду баг, уберу его, запилю опять с оптимизацией. Если говорить про мою игру, то без оптимизатора она работает в 6 раз медленнее( 20 фпс против 120 )

Так падать то будет не у тебя, а у пользователя, который тебе дампы сунет и скажет давай исправляй.
Кстати во многих случаях я вообще без отладки обхожусь, то есть чтобы меня правильно понимали: 99% ошибок можно исправить из высокоуровневого языка и это даже продуктивней чем пошагово что-то отлаживать или тем более ассемблировать. Но это не значит что нужно полностью исключать такую возможность. В 1% потребуется основательная отладка: я уже (вроде даже тебе) рассказывал про Betrayer -- там глюк с видеодрайверами который не могут исправить почти год пруфлинк, просто потому что для них UE3 это чёрный ящик, из-за этого у них огромные проблемы со всей их затеей с этой игрой. При этом 10 лет опыта в индустрии. Вот как так можно? Понадеялись на UE3?
Я лучше заранее к таким ситуациям буду готов. Это кстати также касается того что я всегда рекомендую либо писать свой движок либо хорошенько разбирать устройство чужого движка, поначалу кажется что очень непродуктивно, нету быстрых прототипов и всё такое, зато много времени экономится в конце, когда код полностью котролируется, баги быстро правятся и вообще у всех хорошее настроение :)

Ну то что у тебя 20 против 120 говорит лишь о том насколько плохой у тебя код. Если бы код был хороший то и оптимизировать было бы нечего. Ведь с этим утверждением нельзя поспорить. Когда есть опыт то хороший код пишется сразу, быстрей, чем написать плохой, получить баги при оптимизации и потратить на их исправление.

Кстати работая над гбуфером ты использовал совсем другую философию, прям за каждый байт воевал, у шейдеров же тоже есть оптимизация. Можно было бы и незаморачиваться, само бы как нибудь заоптимизировалось. Ещё кто там кол-во инструкций считал чтобы глубину побыстрее восстановить. А кстати есть же ещё clang там куда более продвинутые оптимизаторы, вот его тебе надо ставить обязательно.

mr.DIMAS 19.02.2015 18:49

Ответ: dword to float4 и обратно
 
ох лол, плохой код... а ниче что я использую 4 сторонних библиотеки( из которых в рантайме только булет ) в которых и просядает вся производительность без оптимизации? я ж выше писал что булет тормозное говно без оптимизации, профайлер ставит мой код в конце списка потенциально медленных мест. кароч, твои аргументы шаткие и нет оснований тратить время, когда можно поменять ключ компилятора и получить профит здесь и сейчас и не ебать себе и окружающим мозги.

Samodelkin 19.02.2015 19:00

Ответ: dword to float4 и обратно
 
Я ещё раз говорю что я не отказываюсь от оптимизации, я ей пользуюсь как любым другим инструментом.
Мои аргументы вполне понятно расписаны, где, зачем и когда надо отключать оптимизацию.
С вашей стороны единственный аргумент это халява, а компилятор сам всё сделает, так что даже проверять результат нет причины.
Зачем тогда кодить на С++? Mr_F_ уже давно на юнити и шарпе.

mr.DIMAS 19.02.2015 19:16

Ответ: dword to float4 и обратно
 
Кто как хочет так и дрочит.


Часовой пояс GMT +4, время: 07:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot