purebasic.info

PureBasic forum
Текущее время: Сб июн 23, 2018 10:28 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 12:00 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
Код:
1
2
3
4
5
6
7
8
9
10
11
12
len.i = 1024*1024*700
*mem1 = AllocateMemory(len)
*mem2 = AllocateMemory(10)
 
PokeS(*mem2, "1234567890", -1, #PB_Ascii)
 
For i = 0 To len -1
  CompareMemory(*mem1+i, *mem2, 10)
Next i
 
FreeMemory(*mem2)
FreeMemory(*mem1)


В итоге более 700Мбайт памяти. Что это? :shock:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 12:48 pm 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 410
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
len.i = 1024*1024*700 и за этого.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 1:08 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
@ZOLO@ писал(а):
len.i = 1024*1024*700 и за этого.
Ну, не знаю :? Читается кусок памяти - сравнивается - освобождается. Зачем его кэшировать, для скорости? Но какой ценой.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 2:07 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2275
Откуда: Russia — Belarus
Благодарил (а): 5 раз.
Поблагодарили: 71 раз.
Пункты репутации: 11
repeat писал(а):
В итоге более 700Мбайт памяти. Что это? :shock:

Ты ведь выделил 734 метра в *mem1.

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 2:20 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
qpAHToMAS писал(а):
Ты ведь выделил 734 метра в *mem1.
Скорее зарезервировал,то есть запретил другим трогать эту область. Но могу и не заполнять. CompareMemory явно что-то химичит.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Ср фев 21, 2018 4:04 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2275
Откуда: Russia — Belarus
Благодарил (а): 5 раз.
Поблагодарили: 71 раз.
Пункты репутации: 11
repeat писал(а):
qpAHToMAS писал(а):
Ты ведь выделил 734 метра в *mem1.
Скорее зарезервировал,то есть запретил другим трогать эту область. Но могу и не заполнять. CompareMemory явно что-то химичит.

Не понимаю. Ты ведь allocate сделал, какой это резерв?
И если CompareMemory() из кода убрать, то памяти будет жраться столько же...

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Чт фев 22, 2018 12:12 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
qpAHToMAS писал(а):
Ты ведь allocate сделал, какой это резерв?

Это начальный адрес в виртуальном адресном пространстве процесса. Не физический.

qpAHToMAS писал(а):
И если CompareMemory() из кода убрать, то памяти будет жраться столько же...

Давайте проверим :)
Код:
1
2
3
4
5
6
7
8
len.i = 1024*1024*1024+1024*1024*999
 
For i = 0 To 100
  *mem = AllocateMemory(len)
  *mem + i
Next i
 
Delay(6000)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Чт фев 22, 2018 12:26 am 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 410
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
repeat, проверил AllocateMemory возвращает ноль.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Чт фев 22, 2018 12:50 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
@ZOLO@ писал(а):
repeat, проверил AllocateMemory возвращает ноль.

@ZOLO@, просто у вас мало оперативной памяти :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Чт фев 22, 2018 1:59 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 259
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
Меня WinHex сбивает с толку, как-то он хитро устроен. То что MapViewOfFile и отрисовка только видимой области это понятно, но как-то уж очень шустро и памяти практически не занимает.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: CompareMemory
СообщениеДобавлено: Чт фев 22, 2018 5:25 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11194
Благодарил (а): 4 раз.
Поблагодарили: 417 раз.
Здесь обсуждали работу HEX редакторов viewtopic.php?f=7&t=3176

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB