|
06.06.2017, 17:22 | #1 |
Участник
|
1) Касаемо 12-шки появление global cahe связано в основном с нормализацией БД - там, где раньше уповали в основном на кэширование таблиц - теперь приходится собирать из 3-х, 5-ти таблиц и класть в кэш. Т.е. имеем решение проблемы, созданной самостоятельно.
2) Наличие этих кэшей сильно расслабляет разработчиков core. Я находил метод в разноске покупок, в котором кешировались наследники некого класса, и делалось это полным перебором DictClass ТРИ минуты. Соотв. мы долго искали эти тормоза, которые проявляются раз в неделю на холодном AOS у произвольного пользователя. 3) За все время запила 12-шки ни разу не пришлось прибегнуть к глобальному кешированию самостоятельно. Что говорит о том, что необходимость глобал-кеша - либо признак хреновой архитектуры, либо одно из двух. Последний раз редактировалось imir; 06.06.2017 в 17:28. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
06.06.2017, 17:46 | #2 |
Участник
|
не стал бы так огульно... )
Думаю, что все опытные программисты понимают, что кэш - это зло. И придуман кэш не от хорошей жизни, а потому, что без него с производительностью в некоторых местах была бы совсем труба. Из этих пониманий (у меня) сложились стойкие убеждения: 1. Кэш нужно использовать только тогда, когда пользователь УЖЕ СТОЛКНУЛСЯ с реальными проблемами в производительности. 2. Кэш можно использовать только для улучшения производительности 3. Использование кэша для решения алгоритмических или архитектурных целей - типа передачи параметров - не просто моветон, а грубейшее нарушение и незнание основ программирования. 4. Кэшировать можно все что угодно, если область видимости и изменяемости этого всего чего угодно абсолютно зафиксирована. (пояснять не хочу, догадайтесь сами о чем это я) 5. Какой механизм выбрать для кэширования - клиент, сервер, тд.. тп.. зависит от решаемой задачи по улучшению производительности и от пункта 4. вот как то так. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Ivanhoe (2). |
06.06.2017, 19:20 | #3 |
Участник
|
Цитата:
Из этого следует, что опытные-то "знают, как надо", но новички будут использовать к месту и не к месту, поскольку не знают других способов. Или банально нет времени искать. При этом и "опытные" здесь не исключение. Если "сроки горят", то не до красоты. Успеть бы... Ну, и как результат. Сам факт наличия такого инструмента приведет к тому, что он очень быстро превратиться в глобальную помойку непонятно чего. Что, собственно, и так уже происходит...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Ivanhoe (2). |
06.06.2017, 19:22 | #4 |
Banned
|
Цитата:
Не нужно кэширование до тех пор пока нет отдельной задачи на улучшение производительности. При первоначальной разработке и тестировании ничего кроме геморроя это не приносит. Понятно что при разработке некий минимум как табличные индексы, приемлимые join и прочее. Но так чтобы изначально писать с кэшированием - крайне глупо. Одни проблемы приносит. |
|
|
За это сообщение автора поблагодарили: Ivanhoe (2). |
Теги |
sysglobalcache, кэширование |
|
|