Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать тип загрузки потока. / 15 сообщений из 15, страница 1 из 1
24.11.2021, 15:27
    #40114550
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Дня доброго.
Можно ли как то профилировать пток по объему читаемой/записываемой памяти? Ну, тоесть,

вот такой код скорее всего не будет работать с памятью:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  while true do
  begin
    inc(i);
    if i > 10000 then
      i := 0;
  end;
end;



а вот такой - будет
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
  buffer: Array of Byte;
  bufferLength: Cardinal;
begin

  bufferLength := 32000000;
  SetLength(buffer, bufferLength);
  while true do
  begin
    for i := 0 to bufferLength - 1 do
    begin
      buffer[i] := buffer[i] + 1;
    end;
  end;
end;



Есть какие-нибудь средства понять, работает ли поток с памятью?
...
Рейтинг: 0 / 0
24.11.2021, 15:40
    #40114553
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий СергеевичЕсть какие-нибудь средства понять, работает ли поток с памятью?

Читать код глазками не предлагать?..

Можно поставить хук на менеджер памяти и следить из каких потоков он вызывается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2021, 15:41
    #40114554
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий Сергеевич,

Перехват менеджера памяти и потоковые счётчики на GetMem/FreeMem.
...
Рейтинг: 0 / 0
24.11.2021, 15:44
    #40114555
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

я про стороннее приложение речь веду.
...
Рейтинг: 0 / 0
24.11.2021, 15:46
    #40114559
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий Сергеевич
я про стороннее приложение речь веду.
Нельзя. Память принадлежит всему процессу
...
Рейтинг: 0 / 0
24.11.2021, 15:49
    #40114560
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Чисто теоретически - это инъекция dll-ки в приложуху и сплайсинг VirtualAlloc.
Но это грубо, так как над ним обычно живут языковые MM, которые могут дробить 64-кб страницы по своему усмотрению.

Вот и вопрос - есть ли какая-то готовая приблуда, которая меряет динамику работы с памятью, хотя бы на уровне VirtualAlloc?
...
Рейтинг: 0 / 0
24.11.2021, 15:52
    #40114561
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий Сергеевич,

Некоторые инcтрументы есть в AQTime
...
Рейтинг: 0 / 0
24.11.2021, 15:57
    #40114562
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий Сергеевичесть ли какая-то готовая приблуда, которая меряет динамику работы с памятью,
хотя бы на уровне VirtualAlloc?

Performance Monitor. А при чём тут Дельфи?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2021, 16:25
    #40114581
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

и какой счетчик?
...
Рейтинг: 0 / 0
24.11.2021, 16:34
    #40114588
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

"А при чём тут Дельфи?"
Я других ЯП, кроме Дельфи и 1С не знаю, и подходящих разделов под мой вопрос не нашел.
Пишу там, где могу дать пример.
...
Рейтинг: 0 / 0
24.11.2021, 16:38
    #40114591
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ежов Дмитрий Сергеевичи какой счетчик?

Ах да, я и забыл, что они там глобальные...

Process Explorer в свойствах процесса показывает график приватной памяти
конкретного процесса.

RamMap покажет детали, но вроде как не умеет в графики.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2021, 16:46
    #40114597
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

ProcessExplorer покажет ошибки страниц (и дельту), а они будут, если я буду память постоянно выделять.
...
Рейтинг: 0 / 0
24.11.2021, 16:49
    #40114600
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Ошибки страниц возникают в основном при свопе, а не выделении.

Какую именно проблему-то ты решаешь?..
Правильный раздел: https://www.sql.ru/forum/windows
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2021, 18:34
    #40114656
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

"Ошибки страниц возникают в основном при свопе, а не выделении."

Даже не знаю, что сказать. А вы - точно специалист?

Запустите этот код и посмотрите, как быстро процесс выберется в топ ошибок страниц. И сколько он будет потреблять памяти.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
  buffer: Array of Byte;
  bufferLength: Cardinal;
  s:String;
begin
  bufferLength := 500000;
  s:='';
  while true do
  begin
    for i := 0 to bufferLength - 1 do
    begin
      SetLength(buffer, bufferLength);
      buffer[i] := buffer[i] + 1;
      SetLength(buffer, 0);
    end;
  end;
end;



Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
...
Рейтинг: 0 / 0
24.11.2021, 18:35
    #40114657
Ежов Дмитрий Сергеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать тип загрузки потока.
Dimitry Sibiryakov,

"Правильный раздел: https://www.sql.ru/forum/windows"
Спасибо, буду писать там.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать тип загрузки потока. / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]