По моему опыту, большая часть архитектурной документации была специальной в лучшем случае и, кроме более структурированных мертво-древовидных видов записи я должен все же видеть формальный UML в фактическом использовании, и я работал с немногими, если любые разработчики, которые смогли бы ясно или правильно создали бы диаграммы UML - это, кажется, используется больше как своего рода "графический psuedocode".
Учитывая, что, мне любопытно относительно того, есть ли у кого-либо опыт с помощью UML во внутренней документации и передавая системную функцию между членами команды. Действительно ли это - инструмент/режим коммуникационных людей, действительно используют в ежедневном? Действительно ли это полезно, чрезмерно определено? Вы работали в средах, где точный, UML имел значение или был полезен?
возможно из-за замены/резервирования памяти, основываясь на определении ps:
RSS: resident set size, the non-swapped physical memory
that a task has used (in kiloBytes).
VSZ: virtual memory usage of entire process.
vm_lib + vm_exe + vm_data + vm_stack
это может быть немного запутанным, 4 различных метрики размера можно видеть с:
# ps -eo pid,vsz,rss,sz,size,cmd|egrep python
PID VSZ RSS SZ SZ CMD
23801 4920 2896 1230 1100 python
Виртуальный размер включает в себя память, которая была зарезервирована процессом и не использовалась, размер всех загруженных общих библиотек, страницы, которые были заменены, и блоки, которые уже были освобождены процессом, поэтому он может быть намного больше, чем размер всех живых объектов в питоне.
Некоторые дополнительные инструменты для исследования производительности памяти:
Heapy (часть Guppy, которую вы используете): http://guppy-pe.sourceforge.net/
Средство проверки памяти Python http://www.softwareverify.com/python/memory/index.html
PySizer http://pysizer.8325.org/
хорошее руководство по отслеживанию утечек памяти у питона с помощью pdb и objgraph:
http://www.lshift.net/blog/2008/11/14/tracing-python-memory-leaks
-121-1918199- Помощник или метод расширения будут работать нормально при запросе объектов в памяти. Но в базе данных SQL код LINQ будет скомпилирован в дерево выражений, проанализирован и преобразован в команду SQL. Эта функциональность не имеет понятия пользовательских методов расширения или методов других объектов, таких как .Контейны (...)
.
Однако корпорация Майкрософт может легко внедрить его в стандартную функциональность LINQ-To-SQL. Но пока они не хотят, мы беспомощны, пока это не функция с открытым исходным кодом.
Все, что вы можете сделать, это создать собственный поставщик запросов, который противоречит базе данных SQL. Но это будет трудно, и это будет только для той одной функции в
, которая отсутствует.
Однако, если вы действительно хотите пройти этот маршрут, развлекайтесь: LINQ: BUILDING AN IQUERYABLE PROVIDER SERIES
-121--2675135-На моем рабочем месте мы широко использовали диаграммы класса UML при написании крупных корпоративных веб-приложений. В некоторых случаях мы используем диаграммы последовательности. Но мы ни в коем случае не используем полный номер люкс диаграмм UML или даже близко подходим. UML может быть эффективным, только пережевывая мясо и выплевывая кости. Это отличный коммуникационный инструмент, но использование слишком большой его функциональности может запутать людей.
Базовый алгоритм:
Давайте предположим, что N (количество образцов) = 44100, W (ширина) = 100 пикселей:
, затем каждый пиксель должен представлять 44100/100 == 441 образцы (блокируют)
for (x = 0; x < w; x++)
draw_pixel(x_offset + x,
y_baseline - rms(&mono_samples[x * blocksize], blocksize));
вещи, чтобы попробовать для разных визуальных Появляются:
Передача не будет работать, как вы потеряете информацию.
-121--3274142-UML (единый язык моделирования) гибкий. Не нужно все время использовать «полный» UML.
Да, я использовал UML для общения дизайна. Я использовал домен, класс, деятельность, использование корпус, последовательность и диаграммы развертывания для различных целей.
Некоторые из этих целей были за пределами «очевидного» использования диаграммы. Например, я использовал диаграммы развертывания к документу наборов виртуальных машин. Поскольку элемент узла представляет собой UML «классификатор», его можно использовать с наследством. Я использовал это, чтобы показать, как специализирована базовая виртуальная машина. Например, база - это просто Windows Server 2008, но специализация этого имеет установленную SQL Server, и специализация этого используется в качестве сервера базы данных.
Я видел использование диаграмм класса UML для автоматического генерации кода. Поток был что-то подобное, архитектор предприятия использовали для генерации XML-схемы из диаграммы классов. Эта схема затем использовалась в качестве входа для JAXB для генерации генерации классов Java, которые предоставляют программный доступ к данным, представленным в модели UML.
По своему опыту я нашел, что диаграммы последовательности UML наиболее полезны для людей, пытающихся понять систему или конкретный процесс в системе.
Причина, скорее всего, в том, что она показывает, как различные компоненты взаимодействуют друг с другом, и косвенно, какую ответственность несет каждый из них. Вертикальное измерение показывает время, а диаграмма очень интуитивна для понимания, даже для людей, не знающих UML.
Я нашел диаграмму класса UML, чтобы быть гораздо более полезной для выполнения логической модели данных или модели домена, чем диаграмма отношений на объекте. Это более выразительно, имея обобщение (то есть наследство) и специфические отношения N-до-N. Попробуйте моделировать это в диаграмме ER:)
Диаграммы UML полезны для фиксации и передачи требований и обеспечения соответствия системы этим требованиям. Они могут использоваться итеративно и на различных этапах планирования, проектирования, разработки и тестирования.
Из темы: Использование моделей в процессе разработки на http://msdn.microsoft.com/en-us/library/dd409423%28VS.100%29.aspx
Модель может помочь вам визуализировать мир, в котором работает ваша система, прояснить потребности пользователей, определить архитектуру вашей системы, проанализировать код и убедиться, что ваш код соответствует требованиям.
Если вы не хотите создавать диаграммы UML с нуля, вы можете создавать диаграммы последовательности, графы зависимостей и диаграммы слоев из кода и использовать проверку слоев, чтобы убедиться, что изменения в коде не противоречат заданному дизайну. Более подробно я описываю это в следующем посте:
Как научиться "хорошему дизайну/архитектуре программного обеспечения"? на https://stackoverflow.com/questions/268231/how-to-learn-good-software-design-architecture/2293489#2293489