по коду:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
for i := 0 to 1000 do
begin
x := x + 0.1;
y := 10 * sin(x);
Chart1LineSeries1.AddXY(x,y);
Application.ProcessMessages;
end;
end;
Так вот этот процесс нихрена не детерменирован и занимает 30-40 сек.
Проц особо не нагружен, оперативы хватает. Ну как-то разброста по времени в +/- 7% имхо это дохрена. Каковы причины этого? С этим что-то можно сделать?
Исполняемый файл с двумя графиками весит 42М. Понимаю, что там еще отладочная инфа, но вроде все равно дохрена. Или нет?
А зачем обработка событий дёргается?
Хочу посмотреть как это в динамике работает, оценить производительность. Пытался через Delay, но тогда без ProcessMessages все равно не отрисовывает.
Если за caption потаскать, можно и на полчаса удовольствия растянуть? 😁
Да я ваще ничо не трогаю, все равно разброс хороший.
GetTickCount до цикла запомни и после, разницу, в мсек будет, например..
100% processmessages так влияет, хотяб каждую 16/32/64 точку вызывать
Разве там нет никакого beginupdate? Давно таким занималась
Нашла у кого спросить) Я и сам хочу узнать как это делать правильно без лагов.
Убери обработку сообщений
Ну тогда график появится целиком и все. А нужна динамика.
if (i and 63)=0 then Application.ProcessMessages;
А ты не подумал, зачем тебе посмотерть промежуточные точки до пикселя?
Э… не надо так. :) Я хотел, щоб сам немножко подумал :)
Вот надо, прикинь, бывает так.
Попробовал как советовал @O_o_0_0_o_O?
Обсуждают сегодня