Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
GetMemory()
SergДата: Вторник, 02 Июня 2009, 20:35 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Code
a$=GetMemory()
RetString$=StrCopy(a$,6,9)
RetString1$=StrCopy(a$,1,5)
i=100/VAL(RetString1$)
RetVal=VAL(RetString$)*i
DisplayValue("EditBox","RetVal")

Правильно ли работает эта команда,у меня показывает уровень загрузки памяти на 70%,а в диспетчере грузится 400мб из 2гб.
Или я ошибся где то.


 
YURIYДата: Вторник, 02 Июня 2009, 21:22 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Всё же, некорректно писать так

Quote (Serg)
RetString$=StrCopy(a$,6,9)
RetString1$=StrCopy(a$,1,5)

Что, если у кого-то 512 метров памяти?

Вот так лучше, думаю

Code
mem$=GetMemory()+'/'
free=(VAL(GetArrayItem(mem$,/,2))*100)/VAL(GetArrayItem(mem$,/,1))
Message("Свободно:","free")

Но у меня три гига памяти, а константа возвращает 2047/2047 %)



Вечная память Андрею Сергееву!
 
SergДата: Вторник, 02 Июня 2009, 21:30 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Аа,да,я забыл что 3-х значные оперативные памяти бывают,привык к своим :)
А почему так.Баг?


 
toizyДата: Вторник, 02 Июня 2009, 21:45 | Сообщение # 4
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
У меня 4 Гб, возвращает 2047. Баг однозначно

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Вторник, 02 Июня 2009, 22:55 | Сообщение # 5
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Значит у создателя ММБ оперативы максимум 2047 было.Гы.. :D
Обидно..ещё один баг :(


 
Alex3AДата: Вторник, 02 Июня 2009, 23:30 | Сообщение # 6
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (YURIY)
а константа возвращает 2047/2047

Гыдето у них число не вписывается в выделеный формат,
а мож и баг 2в степени32 = 4294967295 показывает
целую часть половины 2047,999... гыдето старший байт
потеряли, видимо сами i64 переводили, методом сдвига
бит.
 
DordexДата: Среда, 03 Июня 2009, 02:58 | Сообщение # 7
Необукер
Группа: Проверенные
Сообщений: 533
Репутация: 16
Награды: 9
Статус: Offline
Quote (YURIY)
Но у меня три гига памяти, а константа возвращает 2047/2047

вот и у меня 4 и нетолько родной команды, все плагины древние для MMB показывали
строго 2 гига!

 
toizyДата: Среда, 03 Июня 2009, 11:39 | Сообщение # 8
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
понятно. Значит, взяли целый тип вместо Int64. Включу функцию определения свободной памяти и частоты в плагин для работы с устройствами

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Среда, 03 Июня 2009, 11:40 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
toizy,ещё бы туда добавить просмот загрузки ЦП

 
toizyДата: Среда, 03 Июня 2009, 11:49 | Сообщение # 10
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Ну добавим. Какие проблемы

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SowerДата: Среда, 03 Июня 2009, 11:56 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
А че если еще память ядра для полного комплекта
 
toizyДата: Среда, 03 Июня 2009, 12:00 | Сообщение # 12
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Если это называется Кеш, то можно. только зачем :)

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SowerДата: Среда, 03 Июня 2009, 12:07 | Сообщение # 13
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (toizy)
Если это называется Кеш, то можно. только зачем

Quote (Grand)
для полного комплекта

ну штоб, если понадобится не писать новый плагин, а так всё уже будет, назвать его соответсвенно типа SystemMemory (примерно), можно ешо добавить и виртуальную память
Quote (Grand)
для полного комплекта

Добавлено (03 Июнь 2009, 12:07)
---------------------------------------------
а лучше все подобные памяти: там видеокарта, опрератива, кеш, виртуальная...

 
SergДата: Среда, 03 Июня 2009, 12:35 | Сообщение # 14
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
toizy,как всегда готов помоч thumbs_up Уважаю!

 
toizyДата: Среда, 03 Июня 2009, 14:50 | Сообщение # 15
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Ну если делать как Гранд советует, то это должно быть нечто вроде прищепки

Добавлено (03 Июнь 2009, 14:50)
---------------------------------------------
Ну ясно. Они используют GlobalMemoryStatus вместо GlobalMemoryStatusEx

Quote
On computers with more than 4 GB of memory, the GlobalMemoryStatus function can return incorrect information. Windows 2000 and later report a value of -1 to indicate an overflow. Earlier versions of Windows NT report a value that is the real amount of memory, modulo 4 GB. For this reason, use the GlobalMemoryStatusEx function instead.
Прикрепления: testwmi1.7z (182.9 Kb)


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SowerДата: Среда, 03 Июня 2009, 18:13 | Сообщение # 16
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
потестируйте пару функций у этого плагина, который дает инфу чисто о процессоре, осуществил пока пару функций, нужно протестить, т.к. не уверен я в некоторых данных
Прикрепления: demo.7z (10.4 Kb)
 
toizyДата: Среда, 03 Июня 2009, 18:44 | Сообщение # 17
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
А почему при вызове GetProcessorUsage программа подвисает на 1 секунду?

Добавлено (03 Июнь 2009, 18:44)
---------------------------------------------
GetSystemInfo вижу, а зачем Sleep используешь? :) Не надо...


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SowerДата: Среда, 03 Июня 2009, 18:54 | Сообщение # 18
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (toizy)
А почему при вызове GetProcessorUsage программа подвисает на 1 секунду?

там целый алгоритмище для вычисления

Добавлено (03 Июнь 2009, 18:54)
---------------------------------------------

Quote (toizy)
GetSystemInfo вижу

где?
 
toizyДата: Четверг, 04 Июня 2009, 09:41 | Сообщение # 19
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Quote (Grand)
там целый алгоритмище для вычисления

Зачем всё так сложно? :)

Quote (Grand)
где?

В файле твоём. Ты лучше давай сделай алгоритм по-проще, а то штатная функция ММВ обходится без таких сложностей


Жизнь оказалась не такой уж и забавной, как поначалу...
 
SowerДата: Четверг, 04 Июня 2009, 11:43 | Сообщение # 20
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (toizy)
В файле твоём.

А, ну да АПИ функция то, а я думал процедура, типа есть, а сам про нее не знаю :D
 
toizyДата: Четверг, 04 Июня 2009, 11:54 | Сообщение # 21
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Sleep убери, поставь вычисление на таймер, грузить так не будет. Или читай данные с реестра - самый простой вариант.

Добавлено (04 Июнь 2009, 11:54)
---------------------------------------------
И подпись укороти, 2 строки должно быть :)


Жизнь оказалась не такой уж и забавной, как поначалу...
 
YURIYДата: Четверг, 04 Июня 2009, 13:56 | Сообщение # 22
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (toizy)
И подпись укороти, 2 строки должно быть :)

Простите за флуд, но это мой человек, я смотрю lol



Вечная память Андрею Сергееву!
 
  • Страница 1 из 1
  • 1
Поиск: