Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Hitogui
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 43
1

Можно ли использовать команду TASKILL для потоков?

02.04.2015, 13:53. Просмотров 627. Ответов 6
Метки нет (Все метки)

Друзья, коллеги и знатоки,
нужен ваш совет.

Ситуация такая. Есть процесс. Пусть он называется sacrifice.exe. После обновления пришедшего через сеть, процесс стал работать с жуткими тормозами. Тормоза настолько жутки, что приходится 1-2 минуты ждать, пока откроется новая страница в программе (sacrifice.exe). В службу поддержки разработчика писали уже ни раз. Ответ стандартный - "Мы работаем над устранением этого недостатка). Уже пол года как работают. Так вот...

У этого процесса (sacrifice.exe) есть свои нити (threads).
Код
-------------------------------------------------------
TID    CPU    Cycles Delta  Start Address
-------------------------------------------------------
6264  43.46  1280965836  MSVCR90.dll!endthreadex+0x6f
5532   0.13     5502935  MSVCR90.dll!endthreadex+0x6f
4004                     MSVCR90.dll!endthreadex+0x6f
3872                     MSVCR90.dll!endthreadex+0x6f
2808                     GCMau.dll+0x6318
Их можно посмотреть с помощью программы process explorer. Среди десятков нитей, есть нити с одинаковыми стартовыми адресами (Star address). Как в примере MSVCR90.dll!endthreadex+0x6f.

Экспериментально замечено, если в process explorer "убить" не сам процесс, а две его нити, то всякие тормоза прекращаются. Процесс работает стабильно и комфортно. Одна из этих нитей с повторяющимся адресом, но с самой большой нагрузкой на CPU, а другая имеет уникальный стартовый адрес (например, GCMau.dll+0x6318).

Собственно вопрос, можно ли с помощью taskill автоматизировать выключение этих нитей?

С уважением.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2015, 13:53
Ответы с готовыми решениями:

Как использовать команду NET SEND для localhost?
Добрый день. Как в батнике после команды net send вместо айпишника, ставить локалхост? Net send...

Можно ли использовать несколько потоков для обработки файла
Доброго времени суток. У меня такая вот ситуация, есть код который читает данные из txt файлы и...

Считывание файла пакетами. Какую команду можно использовать в Qt вместо feof(file)?)
QFile file(filename); QByteArray filedata = file.readAll(); QByteArray filedata1 = "2"; ...

Использовать команду Shell для разных кнопок с разными параметрами
Здравствуйте, как быть когда нужно на кнопку, которая в документе Ворд повесить код типа этого ...

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

6
sov44
1765 / 749 / 128
Регистрация: 09.04.2011
Сообщений: 1,324
02.04.2015, 15:09 2
Hitogui, а если переустановить Visual C ? Возможно из этого комплекта http://forum.oszone.net/thread-145766.html библиотека MSVCR90.dll будет правильно работать.
0
Hitogui
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 43
02.04.2015, 15:29  [ТС] 3
sov44, спасибо. Но это не единичный случай, не на одном компьютере. Тормоза на всех компьютерах, где в фирме используется программа. Я, конечно, попробую на одном компьютере переустановить Visual C. Может проблемы уйдёт. А главное, разработчик программы признаёт о возникшей массовой проблеме после обновления. Только ничего не делает.

Вот и ищу решение, пока не будет обновления.
Может это решение и не средствами cmd, а, например, autoit. В любом случае, нужна какая-то автоматизация. А то поубивают не те процессы и нити.
0
Dragokas
Эксперт WindowsАвтор FAQ
17155 / 7209 / 865
Регистрация: 25.12.2011
Сообщений: 10,992
Записей в блоге: 16
02.04.2015, 20:51 4
По всей видимости один из потоков зависает в бесконечном цикле.
В принципе несложно написать программу, которая будет завершать или замораживать поток с определенным относительным адресом.
И нет, в консольных утилитах Windows подобного функционала нет.

Hitogui, не пробовали просто понизить приоритет всего процесса до уровня "Низкий" ?
Еще, можно переключить процесс на работу только на одном ядре процессора, если Вы используете многоядерные.
0
Миниатюры
Можно ли использовать команду TASKILL для потоков?  
Hitogui
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 43
02.04.2015, 21:49  [ТС] 5
Dragokas, спасибо за ответ!
Если не CMD функции, возможно ли это сделать с помощью Autoit?
Или всё же писать программку?

С уважением.
0
Dragokas
Эксперт WindowsАвтор FAQ
17155 / 7209 / 865
Регистрация: 25.12.2011
Сообщений: 10,992
Записей в блоге: 16
02.04.2015, 22:39 6
Autoit - это и есть писать программку,
просто его относят больше к скриптовым языкам.
На выходе точно такой же EXE.

Вы сначала проверьте мой совет. Там уже будет видно.
1
Hitogui
0 / 0 / 0
Регистрация: 19.03.2015
Сообщений: 43
03.04.2015, 15:07  [ТС] 7
Dragokas, попробовал изменить приоритет всего процесса. Тормозить стала больше. Вернул приоритет и попробовал по совету sov44 переустановить Visual C. Ситуация не изменилась. Эх.
0
03.04.2015, 15:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2015, 15:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сколькими способами можно выбрать команду для лодки?
Сколькими способами можно выбрать команду для лодки, если есть 31 кандидат, причём 10 хотят сидеть...

Использовать или мьютекс или монитор для синхронизации потоков
Ребят, дошел до синхронизации потоков, и застрял. В делфи по моему было это проще. Короче суть...

3ds max для студентов, можно использовать для создания платных игр?
хочу начать делать 3d игру, бесплатные игровые движки есть, а инструмент для 3d моделирования...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.