0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
1

Script Control грузит процессор

29.03.2015, 13:26. Показов 1498. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
Столкнулся с такой проблемой:
Есть js код в 4к строк, переписывать я его на делфи не вижу смысла, зато прочитал про Script Control.
Разобрался немного, все работает. Научился использовать Script Control в многопоточности. Так вот тут и косяк.
при 5 потоках , программа грузит цп в 80%. Без выполнения скрипта все отлично , но вот без него никак нельзя.
Каким можно образом снизить нагрузку на цп с использованием скрипта?
(переписать js на delphi, сразу скажу , не смогу )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 13:26
Ответы с готовыми решениями:

GLScene грузит процессор сильно
Вращающийся куб в GLScene грузит процессор до 40 процентов. Страшно представить что будет, если...

Поток грузит процессор
Здравствуйте, занимаюсь сопровождением одной программки, написанной на Delphi 7, переделал уже кучу...

Как работать с Tab Control и Page Control?
В Win32 есть такие Tab Control и Page Control но как ими пользоватся вот ссылка если не понятно...

Грузит процессор компьютера на 100% в диспетчере задач процессор svchost.exe
Грузит процессор компьютера на 100% в диспетчере задач процессор svchost.exe Вот проблема на...

15
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
29.03.2015, 20:30 2
Цитата Сообщение от NoobWeb Посмотреть сообщение
тут и косяк
Забей его этой травой - должно вштырить)
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 01:25  [ТС] 3
Цитата Сообщение от mss Посмотреть сообщение
Забей его этой травой - должно вштырить)
неа , слабоватенько что-то..

я так понял время уходит на создание объекта Script Control и на загрузку в него js скрипта.
Так вот если все это сделать на создании формы , а в потоке просто Run (выполнение), то не работает ((
Может есть какие соображения ?

Добавлено через 2 часа 24 минуты
Webbrowser тоже не подходит (((
на 1 выполнение скрипта уходит 4% цп .
а в многопоточности нужно будет 100 раз в секунду .
Что можно придумать?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 08:13 4
Цитата Сообщение от NoobWeb Посмотреть сообщение
время уходит на создание объекта Script Control и на загрузку в него js скрипта
Время практически наверняка уходит на исполнение скрипта, а не на создание контрола и на загрузку скрипта.

Не по теме:

Цитата Сообщение от NoobWeb Посмотреть сообщение
слабоватенько что-то
Сразу вспоминается крыловская "Мартышка и очки")



Добавлено через 3 минуты
Цитата Сообщение от NoobWeb Посмотреть сообщение
Что можно придумать?
Один раз стартовать поток, один раз создать в нем контрол, один раз в созданном потоке загрузить в контрол скрипт.
А потом N раз из потока-диспетчера командовать исполняющему скрипт потоку "выполни скрипт".
Сам скрипт разбавить вызовами Sleep - чем чаще, тем лучше.
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 14:29  [ТС] 5
Цитата Сообщение от mss Посмотреть сообщение
Время практически наверняка уходит на исполнение скрипта, а не на создание контрола и на загрузку скрипта.

Не по теме:


Сразу вспоминается крыловская "Мартышка и очки")



Добавлено через 3 минуты


Один раз стартовать поток, один раз создать в нем контрол, один раз в созданном потоке загрузить в контрол скрипт.
А потом N раз из потока-диспетчера командовать исполняющему скрипт потоку "выполни скрипт".
Сам скрипт разбавить вызовами Sleep - чем чаще, тем лучше.
Первую часть выполнил ..
Теперь программа может работать в не в 4, а 8 потоков (нагрузка в 25% цп, при увеличении кол-ва потоков все ровно 25% цп но скорость работы снижается ).

в js использовал:
Javascript
1
2
3
4
function sleep(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
от нагрузки не спасло и скорости не прибавило .((
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 14:46 6
Цитата Сообщение от NoobWeb Посмотреть сообщение
в js использовал:
function sleep(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
Это что за хрень ?
Ты вообще по приведенной мною ссылке ходил ? Читал ? Вникал ?
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 15:13  [ТС] 7
Цитата Сообщение от mss Посмотреть сообщение
Это что за хрень ?
Ты вообще по приведенной мною ссылке ходил ? Читал ? Вникал ?
это функция позволяет делать задержку ))
Да переходил , читал и не понял как с этим работать в Script Control , так как туда грузится чисты js без html кода.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 15:34 8
Цитата Сообщение от NoobWeb Посмотреть сообщение
чисты js без html кода
Все чудесатее и чудесатее)..

Причем здесь html-код ?
ScriptControl работает только с JScript и VBScript и знать ничего не знает ни про какие html-коды.
Вот этот самый "чисты js" и следует изменить, включив в текст скрипта везде где возможно вызовы стандартной процедуры sleep()
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 15:50  [ТС] 9
Цитата Сообщение от mss Посмотреть сообщение
Все чудесатее и чудесатее)..

Причем здесь html-код ?
ScriptControl работает только с JScript и VBScript и знать ничего не знает ни про какие html-коды.
Вот этот самый "чисты js" и следует изменить, включив в текст скрипта везде где возможно вызовы стандартной процедуры sleep()
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function sum(x,y) {
    
    var a = x + y ;
    var b = x - y ;
    var c = x / y ;
    var d = x * y;
    
    return {
        'a': a,
        'b': b,
        'c': c,
        'd': d
           };
}
 
data = sum(5,7);
 
alert(data.a);
alert(data.b);
alert(data.c);
alert(data.d);
Я наверное уже достал вопросами , но не понимаю и все ..
Как будет выглядеть этот код со sleep ?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 16:04 10
function sum(x,y) {

.. blabla ..

WScript.Sleep 1

.. blabla ..

}

Ну и где тут html ?
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 20:05  [ТС] 11
Цитата Сообщение от mss Посмотреть сообщение
function sum(x,y) {

.. blabla ..

WScript.Sleep 1

.. blabla ..

}

Ну и где тут html ?
ага , если бы это работало ...
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 21:04 12
Цитата Сообщение от NoobWeb Посмотреть сообщение
если бы это работало
Это обязано работать, хотя бы потому как об этом заявляет сама Майкрософт.
Цитата из травы :
The thread running the script is suspended, releasing its CPU utilization
1
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 22:01  [ТС] 13
Цитата Сообщение от mss Посмотреть сообщение
Это обязано работать, хотя бы потому как об этом заявляет сама Майкрософт.
Цитата из травы :
Оно то может и работает, но нужно правильно использовать.

Вот так не работает.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
30.03.2015, 22:13 14
Цитата Сообщение от NoobWeb Посмотреть сообщение
Вот так не работает
Так прямо и говорит "не работаю" ?
0
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 13
30.03.2015, 22:36  [ТС] 15
Цитата Сообщение от mss Посмотреть сообщение
Так прямо и говорит "не работаю" ?
Да вот так именно и говорит.
PS по ссылке можешь проверить
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
31.03.2015, 08:09 16
Цитата Сообщение от NoobWeb Посмотреть сообщение
вот так именно и говорит
Давай ты врать уже не будешь ?)
Говорит совсем про другое - про алерты, которые ты туда понавтыкал.
А Sleep() работатет вполне себе нормально.
0
31.03.2015, 08:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2015, 08:09
Помогаю со студенческими работами здесь

Adobe Premiere грузит процессор на все 100%.можно как то разгрузить процессор ?
Adobe Premiere грузит процессор на все 100%.можно как то разгрузить процессор переложить нагрузку...

Script Control
Как им пользоваться в Visual Basic 6.0?????

Подробная информация по контролу MS Script Control
Расскажите что из себя представляет этот контрол и с чем его есть : Как с помощью его создавать...

Для чего нужен Microsoft Script Control ?
Тут покопался в VB компонентах и набрел на Microsoft Script Control. Кто-нибудь подскажет для чего...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru