Показать сообщение отдельно
Старый 02.07.2017, 01:03   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Пиши в log файл короче. Что-то мне предсказывает, что это не самое главное в твоей задаче.
не, лог-файл худшее решение на мой взгляд. чой-то нахлебался я ими при работе с ритейлом.

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

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

когда захотел сделать проект для публичного выкладывания тут же начались аспекты "защита от дурака".
  • проект вламывается в очень базовый класс - кэши. без кэшей аксапта просто не запускается. поэтому кэши должны работать что бы там ни произошло со счетчиками. проинсталированы-не проинсталированы, есть права-нет прав, на сервере-на клиенте. причем должно работать без личного участия администратора. когда делаешь проект для себя, то можно сделать на коленке и в случае чего поправить на лету. когда делаешь проект для публичного выкладывания, то не хотелось бы подставлять людей и рушить их систему
  • раз счетчики могут безмолвно и без последствий для системы отламываться, то хотелось бы дать информацию для людей которые используют этот проект. причем удобным для них способом.
  • ну и конечно счетчики используются и на сервере, и на клиентах. на клиентских машинах пользователи могут быть вообще не в курсе происходящего.
  • проект для акс2012 сделан в черновом варианте. теперь я хочу сделать аналогичный в акс7 но только на эксеншенах (заодно хочу проверить как живется в условиях закрытого кода)
  • кроме того, пытаюсь нащупать какой-то баланс "сложности разработки". за основу взял проект https://github.com/DmitryNaumov/PerformanceCounters обратите внимание, как красиво и по делу там используются атрибуты для инсталляции счетчиков, как нормально вписана фабрика вместо конструкторов. как используются интерфейсы для рабочего функционала и для класса заглушки. Заодно проверил скорость разных вариантов реализации. в акс2012 вариант на интерфейсах работает медленнее всего, а вариант на иерархии - вдвое быстрее остальных вариантов. в акс7 ровно наоборот - вариант dummy-класса в иерархии работает вчетверо медленнее остальных вариантов, а вариант на интерфейсах так же быстр как и простой-класс-с-проверками-внутри.

сейчас в работе 6 вариант реализации этих счетчиков. пока я все еще думаю, что в аксапте конструкторы лучше (из-за единого для всех классов namespace). Но аксаптовский класс уже очень хочется раздербанить на SysPerformaceCounter, SysLog, SysPerformaceCounterInstaller. Но это путь к тому, о чем говорил MaxBelugin в ветке про сложность. Но нужны неймспейсы или вложенные классы, чтобы можно было создавать friend-классы, не опасаясь пересечений с другими доработками.

в общем, как обычно, когда делаешь публичные проекты или публично отвечаешь на вопросы, начинаешь узнавать про систему больше, чем содержится в проекте или в ответе.

думаю, что у меня будет еще пара-тройка подходов к снаряду и новых вариантов реализации. )
проектом приходится заниматься в свободное от работы время, поэтому не быстро.
в принципе могу выложить на github, если кому-то интересна промежуточная версия.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: gl00mie (2).