Можем ли мы заставить плагин загрузки DwinHs Inno Setup работать быстрее? - PullRequest
0 голосов
/ 03 июня 2019

DwinHs имеет макрос DwinsHs_Data_Buffer_Length.Я установил его на значение 8192, но скорость загрузки по-прежнему довольно низкая .

Например, у меня соединение 200 Мбит и файл25 МБЗагрузка занимает две с половиной минуты.

Я прочитал некоторые ответы здесь:

Каков наилучший размер буфера памяти, выделяемый для загрузки файла из Интернета??

Вместо этого предлагается буфер 16КБ.В любом случае, есть ли способ, которым мы можем использовать максимальную длину буфера с Pascal для данной пользовательской системы?

Браузеры загружаются быстрее, так почему мы не можем здесь в Inno Setup?


Пример

[ISPP]
#define HelpDocSetupURL "https://www.publictalksoftware.co.uk/downloads/PublicTalksHelpDocumentationSetup.exe"

[Setup]
AppID = TestID
AppName = Test App
OutputBaseFilename = My_Test_App_Setup
AppVersion = 1.0
DefaultDirName = {pf}\MyTestApp
DefaultGroupName = My Test App

[Tasks]
Name: "downloadhelp"; Description: "Task Desc"; GroupDescription: "Group Desc";

[Files]

Source: "{tmp}\HelpDocSetup.exe"; \
    DestDir: "{app}"; \
    Flags: external deleteafterinstall; \
    Tasks: downloadhelp; \
    Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', 'My_Setup', 'Get', 0, 0 )

[Code]
program Setup;

#define DwinsHs_Use_Predefined_Downloading_WizardPage
#define DwinsHs_Data_Buffer_Length 8192
#include "dwinshs.iss"

procedure InitializeWizard();
begin
  DwinsHs_InitializeWizard(wpPreparing);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  DwinsHs_CurPageChanged(CurPageID, nil, nil);
end;

function ShouldSkipPage(CurPageId: Integer): Boolean;
begin
  Result := False;
  DwinsHs_ShouldSkipPage(CurPageId, Result);
end;

function BackButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  DwinsHs_BackButtonClick(CurPageID);
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  DwinsHs_NextButtonClick(CurPageID, Result);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  DwinsHs_CancelButtonClick(CurPageID, Cancel, Confirm);
end;

1 Ответ

1 голос
/ 04 июня 2019

Автор программного обеспечения ответил мне об этой проблеме и предложил:

Вы можете попытаться установить размер кэша 16384, 32768 или 655536.

Поэтому я установил его на:

#define DwinsHs_Data_Buffer_Length 655536

Результаты намного лучше :

Download Window

Как видите, только 10 секунд .


Я не знаю, какое влияние такое значение кэша будет иметь для тех, у кого было медленное подключение к Интернету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...