Dmitry's profileDmitry-BondPhotosBlogListsMore Tools Help

Dmitry Bond.

Occupation
There are no music lists on this space.

Dmitry-Bond

November 27

Потребление электричества компьютером

Сделал предварительные замеры потребления электричества моим компьютером в режиме средней экономии энергии.
Считал все по той же методике что и раньше - раз в 2 часа записать показания счетчика, когда наберется достаточно отсчетов посмотреть что выходит. А выходит примерно 250-350 W/час - очень неплохо если сравнивать со старым компом, это в смысле потребление системы в целом - комп+роутер+модем+монитор. Старый вроде даже чуток больше "кушал".

Чуть позже, если будет возможность, еще прикину как он "ест" когда на максимальной мощности.

Тестирование PdfCreator

Заказчик жалуется на проблемы с PdfCreator, говорит - съедает место на диске, валит систему и т.п. Хотя, честно говоря, внятно объяснить не может в чем причина недовольства. Требует другое средство печати-в-PDF. Мне-то пофиг - любой каприз за ваши деньги, хотя конечно разрабатывать "наш-другой-велосипед" как-то не очень хочется.
Поэтому решил провести тестирование. Самый простейший случай - создать простенький business flow чтобы он сгенерировал 20000-30000 разнообразных запросов на печать и, ясное дело, все завернуть в PDFCreator - пусть печатает.

25-го вечером установил на виртуалке распоследний PdfCreator (0.9.8) и запустил тест. 26-го и 27-го утром делаю resume для виртуалки и тест работает целый день в фоновом режиме.
Кстати, в этом преимущество 8-ми голового компьютера - даже если там запущены 3 виртулаки + winRar пакует громадный пакован данных - машина всего-лишь чуть-чуть нагруженна - CPU usage колеблется около 20-30%. Т.е. при этом на машине вполне еще можно работать и даже играться.

И вот полученные данные:
  • На старте было 32,7Gb свободного места на диске, после того как все задания были отсправленны в spooler осталось 30,1Gb - но появилось куча файлов в C:\Windows\System32\spool\printers. Сейчас свободного места 31,4Gb - т.е. содержимое C:\Windows\System32\spool\printers преобразуется в PDF файлы и место освобождается по мере того как задания на печать выполняются.

  • Тест работает уже около 16 часов. В spooler-е осталось 950 заданий на печать, т.е. средняя скорость печати = 1200 распечаток в час = 20 распечаток в минуту.

  • Виртуалку в процессе теста пару раз пришлось перезагрузить - windows установила какие-то обновления и требовала перезагружки. После перезагрузки задания на печать не потерялись - оно продолжает печатать.

  • business flow справился с печатью за 1,5 часа, остальное время - это уже сама Windows пытается справиться с заданиями на печать. Т.е. BTO явно печатает  быстрее чем система способна справится с распечатками, даже если это печать в файл, а не на реальный принтер.

  • Количество уже созданных распечаток 20000 примерно = PDF файлов + кол-во распечаток в spooler-е, т.е. похоже что пока что ничего не потерялось...

  • Утечек памяти в spooler-е не обнаружено, размер памяти выделенной для процессов spoolsv и PdfCreator практически не меняется в процессе теста - прыгает "вокруг" 12-40Mb. Общий размер выделенной памяти в системе поднялся до 480Mb, но в итоге вернулся к исходному значению 360Mb.

  • Баги в PdfCreator все же есть - там очень глючная GUI - она может валить процесс, может зависать и т.п. Т.е. чего-то сконфигурировать в GUI PdfCreator - это как повезет. :) Но сам процесс печати видимо работает хорошо.

  • В task manager видно что PdfCreator создает новый процесс для распечатки каждого PDF, а создание + завершение процесса операция насколько я знаю "тяжелая", поэтому можно сделать вывод что производительность PdfCreator не идеальна. Хотя 1200 распечаток в час на виртуалке это вобщем-то достаточно сносно чтобы не волноваться об этом.
Update: все же часть заданий на печать по каким-то причинам потерялась. В конце теста я получил 19892 PDF файлов, т.е. 108 распечаток бесследно исчезло. Также - в C:\Windows\System32\spool\printers остались файлы заданий которые видимо уже не могут быть обработаны системой, да и кол-во файлов = 36, т.е это явно не те 108 потерявшихся распечаток. :-(

Update 2: только что выяснил еще одну из причин недовольства заказчика - PdfCreator не справляется с нагрузкой - т.е. новые задания на печать появляются быстрее чем обрабатываются уже созданные. Как результат - место на диске заканчивается (файлы в C:\Windows\system32\spool\printers), задания на печать в итоге теряются, другие задачи на печать могут начинать притормаживать и т.п.

Еще одна проблема - когда PdfCreator создает слишком много файлов в одном каталоге - до миллиона - операционной системе сложно справляться с таким количеством файлов. Но это уже скорее проблема неверной настройки программы - это можно легко исправить изменив настройки.

Из альтернативных решений присматриваюсь к PDF995 - уже пообщася с ихней службой поддержки - произвела хорошее впечатление, как только заказчик одобрит дополнительное время для исследования этого вопроса займусь тестированием PDF995. Но он стоит денег, где-то 200$ за лицензию на 25 пользователей, нам видимо будут нужны 2 штуки.



Баги! Они повсюду! Ж)))

Баги, т.е. ошибки в программах, - они повсюду.
Я не раз уже писал о них - грабли в Windows 7 с boot mgr, грабли с HP драйверами - там их о-очень много (1, 2, и т.п.), грабли с ADODB, вот сегодня Logitech предложили зарегистрировать их продукт (web камеру), первую страничку прошел, а на второй - кнопка [Next] находиться за пределами формы + там же, за пределами формы, находятся еще пачка полей для ввода каких-то данных и содержимое формы не прокручивается. Ж)
Прикольно. Так интересно наблюдать за процессом несовершенства цивилизации...
November 26

Еще одни грабельки от MS - путаница с ftp в IIS

Еще одни грабельки от MS - путаница с ftp в IIS.
Не достаточно в IIS разрешить запись в FTP каталог, нужно еще ручками выставлять атрибуты безопасности для той директории доступ к которой раздается через IIS FTP. Хоть бы сообщение какое-то показали по этому поводу...

Т.е. представьте - вы выставили разрешение на запись в FTP каталог и уехали по делам, например - на завод, к заказчику. И только там выясняется что а запись-то все равно не работает! Потому что нужно еще выставить права на запись тому пользователю операционной системы от которого FTP сервис будет пытаться туда что-то записать. По хорошему IIS конфигуратор должен было бы показать какое-то сообщение об этом - типа напоминание чтобы не забыть, а еще лучше чтобы IIS конфигуратор предупредил об этом и сам все сделал.

Ну зачем такой код писать?!

Вот такое вот:

bool RuleList::evaluate(bool &result)
{
  bool res;
  result = _op == roAnd ? true : false;
  for (Rules::const_iterator rule = _refs.begin(); rule != _refs.end(); rule++)
    if (!(*rule)->evaluate(res))
      return false;
    else
      if (_op == roAnd)
      {
        if (!(result &= res))
        {  // AND
          _evalText = "The evaluation of RuleList \"" + _name + "\" failed with reason: " + (*rule)->resultText();
          return true;
        }
      }
      else
      {
        if (result |= res)  // OR
          break;
      }
  if (!result && _op == roOr)
    _evalText = "No Rules within the RuleList \"" + _name + "\" evaluated to true, ...";
  else
    _evalText.erase();
  return true;
}

Во-первых не всякий компилятор пропустит "if (!(result &= res))".
А во-вторых - В ЧЕМ ПРИКОЛ ЭКОНОМИТЬ ОДНУ СТРОЧКУ и пару фигурных скобок?!

Почему нельзя было написать нормально:

                result &= res;
        if (result)

Оно и визуально понятней и ни один компилятор на это не будет ругаться.
Ну и код после "for" нужно бы в фигурных скобочках, а то если отступы потеряются то фиг потом поймешь - что имел ввиду автор. Ж-)


 
Photo 1 of 77
No list items have been added yet.