по поводу деградации
2025-Dec-29, Monday 10:19я, конечно, давно не программист, но прекрасно помню как надо писать некоторые вещи. основные принципы. например, что из цикла надо выносить наружу какие-то присвоения переменным, которые остаются константами в цикле.
просто вспомнил историю с нашими доморощенными кодерами. когда все жаловались, что прикладуха тормозит. а кодер уверял, что "ну расклад такой". и что "у меня не тормозит...". потом ребята, которые за БД следят посмотрели логи, спрашивают: а чего это к базе столько запросов одинаковых? оказалось, этому деятелю надо было значение переменной получить из бвзы и потом эту переменную задействовать в цикле. дык он для тестов просто константу подставлял. в цикле. видимо, тормоза и не ощущались.
а недавно уже другой деятель наваял... тоже его прилада чот тормозит. но тут вроде с БД оно не работает... потом пользователи глянули на загрузку процессора - вот и процессорного времени программа жрет чота много. спецы по Винде глянули логи - говорят: твоя программа регистри постоянно дергает! накойхер вообще?! дык и тут, оказывается, деятель вместо того, чтобы дернуть регистри один раз при старте, запомнить это где-то в переменной, постоянно в своей говнопрограмме лазит за этой КОНСТАНТОЙ в систему! и в цикле, в том числе...
первого, помнится, уволили. но он особо не переживал - переехал в Москву, устроился куда-то, чуть ли не в Яндекс. набрал портфолио: программирует на разных языках, знает БД.
просто вспомнил историю с нашими доморощенными кодерами. когда все жаловались, что прикладуха тормозит. а кодер уверял, что "ну расклад такой". и что "у меня не тормозит...". потом ребята, которые за БД следят посмотрели логи, спрашивают: а чего это к базе столько запросов одинаковых? оказалось, этому деятелю надо было значение переменной получить из бвзы и потом эту переменную задействовать в цикле. дык он для тестов просто константу подставлял. в цикле. видимо, тормоза и не ощущались.
а недавно уже другой деятель наваял... тоже его прилада чот тормозит. но тут вроде с БД оно не работает... потом пользователи глянули на загрузку процессора - вот и процессорного времени программа жрет чота много. спецы по Винде глянули логи - говорят: твоя программа регистри постоянно дергает! накойхер вообще?! дык и тут, оказывается, деятель вместо того, чтобы дернуть регистри один раз при старте, запомнить это где-то в переменной, постоянно в своей говнопрограмме лазит за этой КОНСТАНТОЙ в систему! и в цикле, в том числе...
первого, помнится, уволили. но он особо не переживал - переехал в Москву, устроился куда-то, чуть ли не в Яндекс. набрал портфолио: программирует на разных языках, знает БД.
(no subject)
Date: 2025-12-29 13:38 (UTC)(no subject)
Date: 2025-12-29 15:09 (UTC)Нонче оптимизирующие компиляторы могут определить, кто там в цикле инвариант и вынести за цикл самостоятельно. Особенно если им помочь, определив переменную как const. Это вообще полезное умолчание, почти все переменные объявлять константами и менять значение только тех переменных, которым это действительно нужно (индекс, указатель на текущий элемент и т.п.)
Но если значение снаружи приходит, из SQL запроса или registry, тогда компилятор не может знать, что оно не меняется. И тогда случается описанная задница.
(no subject)
Date: 2025-12-29 20:16 (UTC)