【问题标题】:Can we make the DwinHs Inno Setup download plugin work faster?我们可以让 DwinHs Inno Setup 下载插件运行得更快吗?
【发布时间】:2019-06-03 04:30:52
【问题描述】:

DwinHs 有一个DwinsHs_Data_Buffer_Length 宏。我已将其值设置为 8192,但下载速度仍然相当慢

例如,我有一个 200 MB 的连接,而文件是 25 MB。下载需要两分半钟。

我已经阅读了这里的一些答案:

What is the best memory buffer size to allocate to download a file from Internet?

它建议使用 16K 缓冲区。无论哪种方式,在给定用户系统的情况下,我们有什么方法可以使用 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;

【问题讨论】:

  • 你能发一个完整的例子吗?
  • 在我的机器/网络上大约需要 10 秒(绝对远低于 200 MBit),符合预期。在 Inno Setup IDE 中执行安装程序需要更长的时间(25 秒)。使用 16KB 时,速度稍快(约 8 秒)。
  • @MartinPrikryl 很有趣。如果我在 Inno Setup IDE 之外运行它,它会以 380.28 KB/s 的速度执行,耗时 1 分 8 秒。所以它比 10 秒快了 50% 以上!
  • @MartinPrikryl 刚刚在我的电脑上进行了速度测试,它报告了 50MBits!

标签: inno-setup dwinshs


【解决方案1】:

软件作者就这个问题给我回复并提出:

您可以尝试将缓存大小设置为 16384、32768 或 655536。

所以我把它设置为:

#define DwinsHs_Data_Buffer_Length 655536

结果好多了

如您所见,只有 10 秒


我不知道这样的缓存值对那些较慢互联网连接的人会有什么影响

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2020-02-27
    • 2013-10-30
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多