Спасибо, тоже хорошая вещь! Жаль, что идет только вместе с Visual Studio Ultimate.
И на сколько я понял, анализирует программы, написанные непосредственно в VS.
Пора вносить дополнения к топику.
спасибо EndUser, amarao, int80h за дельные ссылки по теме. Жаль кармы на всех не хватило. вношу дополнения
Спасибо, действительно хорошая штука, запишу себе.
Там есть подобный тест, вот что нашел в этой большой массе на сайте майкрософта по теме топика: msdn.microsoft.com/ru-ru/library/windows/hardware/hh439324
заставляет уснуть систему.
Поддерживается много языков, и так или иначе — программировать все равно придется, и имитировать тот самый «управляемый хаос» с заданным распределением тоже придется ручками, если захочется сделать подобный тест. Принцип останется прежним, средство достижения поменяется.
Скорее всего их
HRESULT Sleep(
[in] LONG nSleepState
);
заставляет уснуть очень основательно. Интересно поразмыслить над тем, как они это сделали.
Ну а что касается оценки, на сколько программа, в каком количестве, с каким распределением устраивает сама эти sleep, такого судя по всему у них пока что нет.
Ну вы зря так категоричны. Многолетний опыт использования в том числе и виндовс в подобных задачах не дал повода усомниться в надежности и своих остальных плюсах. Трудности есть, ну а куда без них. Главное — прямые руки.
Тем более, что есть с чем сравнивать. Заказчики разные — кто-то хочет линукс, кто-то виндоус, кто-то дос.
Да, чтение/запись в несколько потоков и выделение больших объемов памяти — все есть.
Более того не просто выделение большого объема памяти, но и тестирование при постоянном забивании памяти все больше и больше. Т.к. если просто занять память например 10 ГБ, толку от этого не будет — часть уйдет в файл подкачки, в реальной оперативке освободится несколько мегабайт и все.
Уважаемые Хабралюди, возможно я не так выразился, ЕСТЕСТВЕННО винда используется не обычная с рутрекера или прилавков магазинов, а так сказать ручной сборки.
Так же используются вндовзы, которые поставляются не нашей компанией.
Да… Ждал этого хорошего вопроса.
К сожалению по трудовому договору программы принадлежат не мне, а компании.
Я могу только поделиться принципом работы…
Глубоко извиняюсь.
Но программа не шибко сложная, можно будет и переложить её на другую среду, чтобы можно было выложить.
Самое ответственное место, где используется винда — пульт оператора.
Разделяю ваши опесения, но образно говоря — там используется три винды одновременно (три дублирующих друг друга компьютера и монитора) повисание одного компа не повлечет никаких последствий. Сами алгоритмы управления и т.п. крутятся не пульте оператора. Так что в принципе все нормально.
Ну а выбор винды для пульта оператора мне думается исторический, хотя тут могу ошибаться.
Да, применительно к операторам — вы правы — они редко пользуются чем-то кроме определенной программы, хотя бывает, что нужно что-то кроме…
Но есть еще, например, инженеры-технологи. Они работают с программами, которые собственно на объекте и не устанавливаются, а устанавливаются только файлы-результаты работы тех программ.
А вот им как раз важен привычный виндоус, ворд, эксель, документации, почта, файлики, картинки даже скайп для связи или аська. Ну вообщем все-все.
Несколько некорректно выразился:
«где предполагаются пользователи, несколько далекие от компьютеров»
скорее хотел написать вот так:
пользователи-специалисты не сколько в компьютерах, сколько в самих технологических процессах, для которых мы производим системы. Ну смысл понятен.
Дело в том, что винда — одна из нескольких осей, которые используются: винда, линукс, QNX, dos. Каждая ось — для своих задач. Винда используется в тех частях системы, где предполагаются пользователи, несколько далекие от компьютеров. Примерами у нас могут служить инженеры-технологи, которые составляют и вбивают технологические алгоритмы, или операторы, которые собственно управляют на мнемосхемах всей системой, тестировщики стоек и т.п.
Выбор языка в самой винде тоже не однозначен в сторону дельфи. Используется и С++.
Для драйверов и подобных программ используется С, для программ, где много окон, кнопок и т.п. используется дельфи. Вы скажите, что можно C builder использовать — да, но есть еще фактор «не переделывать же все» =)
Все правильно говорите. Действительно, причин «трешинга» может быть огромная куча, так же как и следствий. Но задача, которую я описал в статье несколько проще, чем «имитировать полный треш на всех аппаратных и программных уровнях».
Нехватка процессорного времени для программы может вызвать и вскрыть некоторые ошибки, которые может никогда не проявятся до тех пор, пока программа не заработает на объекте вместе с кучей других прожорливых программ. А тестировать программисту свою программу на своем месте, запуская всю эту кучу программ у себя, и сидеть ждать, когда там что-то займет много времени и слетит — дело неблагодарное.
Говорю не просто так — таким образом имитированная нагрузка действительно позволила поймать ошибку, которая возникала раз в несколько суток, и выявить пару других недоработок.
Ну а способ оценки с помощью временных «шкал» позволяет оценить работу программы или совместно нескольких программ, но естественно лишь с одной из сотен сторон.
А интересная мысль про рутрекер, но как придать на рутрекере этой нестабильности какой-то определнный характер: сильная загрузка… слабая загрузка… сильная загрузка и т.п. Да и интернет не везде есть.
Однако такой вопрос про сеть в своей программе я тоже не решил. Я просто по полной загружал сеть. сначала сделал в несколько потоков отправку пингов в бешеном количестве, но потом вспомнил, что «убить» машину отправляя на неё пинги почти невозможно. Если времени на пинг нету — машина просто не реагирует на них.
После этого сделал отправку/прием пакетов по UDP в несколько потоков. Это решило проблему по сильной нагрузки на сеть, а менять нагрузку со временем я уже не стал.
Тащишь быстро — карты тащатся медленнее, чем мышка.
Тащишь медленно — карты обгоняют мышку.
Игра — подбери скорость мышки, для которой карты не будут отставать и не будут опережать =)
И на сколько я понял, анализирует программы, написанные непосредственно в VS.
Пора вносить дополнения к топику.
спасибо EndUser, amarao, int80h за дельные ссылки по теме. Жаль кармы на всех не хватило. вношу дополнения
Там есть подобный тест, вот что нашел в этой большой массе на сайте майкрософта по теме топика:
msdn.microsoft.com/ru-ru/library/windows/hardware/hh439324
заставляет уснуть систему.
Поддерживается много языков, и так или иначе — программировать все равно придется, и имитировать тот самый «управляемый хаос» с заданным распределением тоже придется ручками, если захочется сделать подобный тест. Принцип останется прежним, средство достижения поменяется.
Скорее всего их
заставляет уснуть очень основательно. Интересно поразмыслить над тем, как они это сделали.
Ну а что касается оценки, на сколько программа, в каком количестве, с каким распределением устраивает сама эти sleep, такого судя по всему у них пока что нет.
Тем более, что есть с чем сравнивать. Заказчики разные — кто-то хочет линукс, кто-то виндоус, кто-то дос.
Более того не просто выделение большого объема памяти, но и тестирование при постоянном забивании памяти все больше и больше. Т.к. если просто занять память например 10 ГБ, толку от этого не будет — часть уйдет в файл подкачки, в реальной оперативке освободится несколько мегабайт и все.
Уважаемые Хабралюди, возможно я не так выразился, ЕСТЕСТВЕННО винда используется не обычная с рутрекера или прилавков магазинов, а так сказать ручной сборки.
Так же используются вндовзы, которые поставляются не нашей компанией.
К сожалению по трудовому договору программы принадлежат не мне, а компании.
Я могу только поделиться принципом работы…
Глубоко извиняюсь.
Но программа не шибко сложная, можно будет и переложить её на другую среду, чтобы можно было выложить.
Разделяю ваши опесения, но образно говоря — там используется три винды одновременно (три дублирующих друг друга компьютера и монитора) повисание одного компа не повлечет никаких последствий. Сами алгоритмы управления и т.п. крутятся не пульте оператора. Так что в принципе все нормально.
Ну а выбор винды для пульта оператора мне думается исторический, хотя тут могу ошибаться.
Но есть еще, например, инженеры-технологи. Они работают с программами, которые собственно на объекте и не устанавливаются, а устанавливаются только файлы-результаты работы тех программ.
А вот им как раз важен привычный виндоус, ворд, эксель, документации, почта, файлики, картинки даже скайп для связи или аська. Ну вообщем все-все.
Надеюсь ответил на ваш вопрос.
«где предполагаются пользователи, несколько далекие от компьютеров»
скорее хотел написать вот так:
пользователи-специалисты не сколько в компьютерах, сколько в самих технологических процессах, для которых мы производим системы. Ну смысл понятен.
Выбор языка в самой винде тоже не однозначен в сторону дельфи. Используется и С++.
Для драйверов и подобных программ используется С, для программ, где много окон, кнопок и т.п. используется дельфи. Вы скажите, что можно C builder использовать — да, но есть еще фактор «не переделывать же все» =)
Нехватка процессорного времени для программы может вызвать и вскрыть некоторые ошибки, которые может никогда не проявятся до тех пор, пока программа не заработает на объекте вместе с кучей других прожорливых программ. А тестировать программисту свою программу на своем месте, запуская всю эту кучу программ у себя, и сидеть ждать, когда там что-то займет много времени и слетит — дело неблагодарное.
Говорю не просто так — таким образом имитированная нагрузка действительно позволила поймать ошибку, которая возникала раз в несколько суток, и выявить пару других недоработок.
Ну а способ оценки с помощью временных «шкал» позволяет оценить работу программы или совместно нескольких программ, но естественно лишь с одной из сотен сторон.
Однако такой вопрос про сеть в своей программе я тоже не решил. Я просто по полной загружал сеть. сначала сделал в несколько потоков отправку пингов в бешеном количестве, но потом вспомнил, что «убить» машину отправляя на неё пинги почти невозможно. Если времени на пинг нету — машина просто не реагирует на них.
После этого сделал отправку/прием пакетов по UDP в несколько потоков. Это решило проблему по сильной нагрузки на сеть, а менять нагрузку со временем я уже не стал.