DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 10
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 17:25:13
标题:
测了下Win32,Berlin up2,发现编译后程序的执行效率略低于seattle up1 浏览:3370
加入我的收藏
楼主: Win32下,相同一段zlib的压缩代码,Berlin up2 比seattle up1编译出来程序,执行速度略低3-5%,看来动了win32编译器
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 17:26:17
1楼: 我仅测一小段相同代码,编译器开关都是一致,可能不具有代表性。如果不在乎效率可以忽略
----------------------------------------------
-
作者:
男 doorkey (DoorKey) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 17:55:37
2楼: 百分3左右的,我觉得更可能的是误差。
----------------------------------------------
QQ: 9717005 我的Blog:http://www.cnblogs.com/anydelphi/
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 18:00:48
3楼: 相同函数,测了几十遍了,不会是误差
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 18:05:21
4楼: 相关源代码地址http://www.base2ti.com/
----------------------------------------------
-
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2016/11/18 20:26:53
5楼: 建议不要关注这个了,态度决定一切,因为内存大所以随意浪费内存(lock field),
因为硬盘大,所以任exe膨胀(RTTI),因此,这是必然结果。Delphi2007一个空exe 700k,然后每出一个版本大一点,都称之为“可忽略不计”,其结果是到了现在,一个空exe,2M大小,然后看看他们自己开发的Delphi的Bin目录,一大排10M以上的PE文件。

就坦然接受吧,纠结也无济于事。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/11/18 20:50:42
6楼: 如果 DELPHI 和他的组件是用DLEPHI 开发的,那么他们为啥不觉得 IDE 不好用呢?
我希望他们能多用 DELPHI 开发 DELPHI,这样IDE 的问题,他们自己就能发现了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 21:02:24
7楼: 我是试一下新的编译器,发现相同代码编译出来执行比之前版本的程序慢,seattle Up1编译后的执行时间238ms,用Berlin Up2编译后执行249ms,慢就慢吧,如果用来做客户端,感觉不出来,没什么关系,做服务器端,会有些影响
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 21:16:39
8楼: 但并不是所有代码编译出来都运行慢,有些计算会比seattle快一点,不好说,要用就凑合用
----------------------------------------------
-
作者:
男 zwjchinazwj (蒲石) ★☆☆☆☆ -
普通会员
2016/11/18 21:45:32
9楼: 后面会越来越慢,这几乎不用怀疑的。
让我们来看看TList的Add
function TList.Add(Item: Pointer): Integer;
begin
  Result := FCount;
  if Result = FCapacity then
    Grow;
  FList[Result] := Item;
  Inc(FCount);
  if (Item <> nil) and (ClassType <> TList) then
    Notify(Item, lnAdded);
end;
再来看看TList<T>的Add
function TList<T>.Add(const Value: T): Integer;
begin
  if IsManagedType(T) then
  begin
    if (SizeOf(T) = SizeOf(Pointer)) and (GetTypeKind(T) <> tkRecord) then
      Result := FListHelper.InternalAddMRef(Value, GetTypeKind(T))
    else if GetTypeKind(T) = TTypeKind.tkVariant then
      Result := FListHelper.InternalAddVariant(Value)
    else
      Result := FListHelper.InternalAddManaged(Value);
  end else
  case SizeOf(T) of
    1: Result := FListHelper.InternalAdd1(Value);
    2: Result := FListHelper.InternalAdd2(Value);
    4: Result := FListHelper.InternalAdd4(Value);
    8: Result := FListHelper.InternalAdd8(Value);
  else
    Result := FListHelper.InternalAddN(Value);
  end;
end;

TList<T>天生慢,我也能理解,
但是我无法理解的是,将classes单元中,原来稳定的,使用TList的代码全部换成TList<T>,比如TCollection,classes是相对稳定的单元,很少需要大幅修改,呵呵,难道牺牲稳定的执行效率,只是为了写代码好看么?还有比这更愚蠢的事情吗。

所以,从这种做事态度来看,以后会越来越慢。
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 22:00:54
10楼: 做IDE不赚钱吧,如果和做CPU一样,有巨大利润,估计就会去优化了,现在Delphi框架有了,估计没动力去优化
----------------------------------------------
-
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 22:10:39
11楼: zlib压缩代码不具有代表性,因为zlib大部分功能不是Delphi编译的,而是CBuilder编译的Zlib的c代码,Delphi只是把这个obj链接进来呢。
也许zlib用CBuilder重新编译过了,调整过某些参数
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 22:18:45
12楼: 我测的不是Delphi自带的zlib,是http://www.base2ti.com/下的独立的zlib,用seattle和berlin各编译运行,做对比
----------------------------------------------
-
作者:
男 hardnut (麦轲数据管家) ★☆☆☆☆ -
普通会员
2016/11/18 22:26:43
13楼: 开发效率与执法效率,哪一个重要?
对Delphi来讲,应该是更重视前者。
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/18 22:29:08
14楼: 做客户端一般考虑需求,不考虑效率,做服务器是要考虑性能。这个问题通常情况都可以忽略,我只是测试一下,告诉一下大伙,知道一下
----------------------------------------------
-
作者:
男 ww1000 (Delphis) ▲▲▲▲▲ -
普通会员
2016/11/20 15:08:08
15楼: 楼主精神值得赞赏。。。。顶
----------------------------------------------
阳光总在
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/20 15:47:35
16楼: 同意5楼
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/20 21:05:58
17楼: //哪位时间,测一下seattle up1和berlin up2编译后计算时间,我的机器berlin up2编译后运行慢一点
procedure TForm81.thlistTime;
var
  i: Integer;
  d1: TStopwatch;
begin
  d1 := TStopwatch.StartNew;
  for i := 1 to 10000 * 10000 do
  begin
    ls.LockList;
    try

    finally
      ls.UnlockList;
    end;
  end;

  d1.Stop;

  Caption := FormatFloat('0', d1.ElapsedMilliseconds);
end;
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/20 22:47:12
18楼: 上面过程漏了定义:ls: TThreadList;
----------------------------------------------
-
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/20 22:56:01
19楼: 这个测试真心没有什么意义,越来越慢是肯定的
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/20 23:33:52
20楼: 有啊,服务器程序的基本语句,每秒好几百的次
----------------------------------------------
-
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/21 0:13:42
21楼:
有啊,服务器程序的基本语句,每秒好几百的次


服务器不是这样测试的,应当是量不要包含其他单元,编译器通过开关优化,最后效率基本和delphi的版本无关了,不用测试了
----------------------------------------------
-
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/21 0:15:04
22楼: 比如楼主这个功能,最后就是一个dll!
另外,也基本和VC、delphi什么的无关了,差别很小了
----------------------------------------------
-
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2016/11/21 7:26:23
23楼: 我只是举了个相同、几乎不能再简单一段语句,用不同的delphi版本编译然后运行,观察其效率,发现berlin比seattle慢一点,可能类库、编译器等变了,这种细微变化,通常是可以忽略的
----------------------------------------------
-
作者:
男 cuit_xiong (熊猫) ★☆☆☆☆ -
普通会员
2016/11/21 12:31:34
24楼: 就是需要有楼主这样的人,delphi现在代码 真的越来越不严谨了,很多低级错误,看着就害怕
----------------------------------------------
-
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2016/11/21 15:55:58
25楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2016/11/21 17:15:45
26楼: 跨平台肯定要付出一些代价的,关键是值不值得。
瞎想一下:某年某月某日,Delphi由于编译出来的代码执行太慢,加入了JIT…… ^o^
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/11/21 17:16:38
27楼: 不用泛型也能支持移动。
emb 就是懒,不想维护太多的代码而已。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 142857 (142857) ★☆☆☆☆ -
禁用账号
2016/11/21 17:26:50
28楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 feiyanm (feiyanm) ▲▲▲▲▲ -
普通会员
2016/11/22 15:48:48
29楼: 支持楼主,顶楼主!
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
作者:
男 wojiaohaoyaping (我叫郝亚平) ▲▲▲▲△ -
普通会员
2016/11/22 18:24:46
30楼: Berlin Update2 下一个版本,该什么了? Update3 。还是新的代号。
----------------------------------------------
-
作者:
男 wojiaohaoyaping (我叫郝亚平) ▲▲▲▲△ -
普通会员
2016/11/22 21:58:24
31楼: Godzilla
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行54.6875毫秒 RSS