Какого диска?
речь о
Отрубил один из винчей (терабайтник) и, внезапно, уже час всё нормально
ок..полчаса до выхода на работу.если найду-тут отпишусь нет-значит или потом или не свезло
Отправлено: 19 Августа 2012, 18:27
помнил же,что гдето видел.Скажу так.У меня под рукой сейчас нет sdk но) полагаю,что с помощью этого quote-man варианта ты сможешь найти причину висуна
У вас программа работает, а у пользователя - нет. Что делать?! Для начала - собрать информацию о конфигурации его компьютера ("Панель управления -> Администрирование -> Управление компьютером -> Сведения о системе" или утилиты MSInfo32.exe). К сожалению, установить виновника таким путем с ходу не удастся. Может, там вирус сидит и вредительствует. Или глючит какой драйвер. Но имея несколько отчетов от различных пользователей, в них можно выявить некоторую закономерность. Например, программа не идет на таком-то процессоре или видеокарте.
Другая возможная причина - утечка ресурсов. Утечки возникают всякий раз, когда программа злостно не освобождает то, что постоянно запрашивает. Чаще всего приходится сталкиваться с утечками памяти, но ничуть не хуже утекают перья, кисти, файловые дескрипторы... В-общем, практически любые объекты ядра, USER и GDI. Тестировщик, работая с программой непродолжительные отрезки времени, может этого и не заметить (особенно, если у него стоит Windows NT/2000/XP, в которой ресурсы практически не ограничены), но при "живой" эксплуатации у пользователей появляются огромные проблемы. Сначала легкое замедление быстродействия системы, затем конкретные тормоза, переходящие в полный завис, и наконец - ресет, сопровождаемый колоритным матом.
Отладочные библиотеки, входящие в состав компилятора Microsoft Visual C++, легко обнаруживают большинство утечек памяти. В сложных случаях приходится прибегать к верификаторам кода или динамическим анализаторам наподобие NuMega Bounds Checker. Но высшей инстанцией является эксперимент. Запустите "Диспетчер Задач Windows NT" и некоторое время поработайте с тестируемой программой. Вкладка "Процессы" отображает текущие счетчики дескрипторов, размер выделенной памяти и т.д. (По умолчанию видны лишь некоторые из них, зайдите в меню "Вид -> Выбрать столбцы" и взведите все галочки). Если какой-то счетчик неуклонно увеличивает свое значение после некоторых операций - это утечка.
Для исследования работоспособности программы в условиях катастрофической нехватки ресурсов (памяти, дискового пространства) Microsoft включила в состав Platform SDK утилиту Stress.exe, снабдив ее иконкой танцующего мамонта. Корректно спроектированное приложение должно выживать при любых обстоятельствах. Обломали с выделением памяти из кучи? Переходите на резервный источник (стек, секция данных). Освободите все ненужное, но любой ценой сохраните все данные! Всегда сохраняйте при старте программы минимально необходимое количество памяти "про запас", а потом используйте его как НЗ. То же самое относится и к дисковому пространству.