delphi xe 之路(30)Delphi XE7 update1进步太大了

1.更新的bug列表并不全
通过bug修正列表及发布的消息,可以看到up1修正了很多bug,正如我所说,有些bug并没有写到发布的bug列表中,如TextPrompt不显示的问题。

2.解决了对象释放的问题
基于XE7,我做了测试代码,也是我想象中,开发一个实际的项目要用到很多Form,并且是用到时再建立,需要的话,用完就释放掉。为了这个想法,我测试了很长时间,也看了相关的代码,无耐,实际的结果让人颓丧。问题就是建立一个Form,要耗时300毫秒,再复杂点的窗口则要更多时间。就算是在200-300毫秒,其用户体验也达不到java做的android应用了!

为什么会这么慢呢?摸索出以下几个问题:
a.日历与日期控件耗时;
b.DisposeOf不能完全释放内存;
如下面的代码:

for i:=1 to 1000 do begin
    Form1:=TForm1.Create(Application);
    Form1.DisposeOf;
end;

上面的代码在xe7中,建立一个窗口然后释放,如果循环1000次,内存占用300M,再循环下去,直到应用崩溃。只有退出应用,才会释放内存。
这对我来说是个严重的问题,现在在xe7 up1中得到了解决!运行前期的测试代码,内存稳定在67.9M!即在运行上面这个代码的时候,内存不会变化,一直是67.9M.
这是一个让人兴奋的结果。

3.建立窗口的速度提升了10倍
原来的代码,建立一个窗口的速度是300毫秒,现在只到40毫秒左右!有图为证,这是建立1000个Form后,每个建立耗时。你会看到,每次建立的耗时不再增长。

4.内存占用
这是建立了1000个窗口后内存的占用情况:65.2MB

再运行一次,内存没变化!!!

5.FMX控件效率提升
通过运行xe7带的Controls例子,运行起来,基本同原生应用的效率一样,在上个版本中,明显有卡顿,现在没有这个情况了,这可是个把所有fmx可视控件都放到一个Form上,很极端了!你也可以在这个目录找到并运行一下。
C:\Program Files (x86)\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\User Interface\Controls

先写到这里,等我再继续测试并分享!

时间: 2024-10-02 00:48:51

delphi xe 之路(30)Delphi XE7 update1进步太大了的相关文章

[转载红鱼儿]Delphi XE7 update1进步太大了

写以下的文字是怀着无比兴奋的心情写的,急于同朋友们分享XE7的进步! 1.更新的bug列表并不全 通过bug修正列表及发布的消息,可以看到up1修正了很多bug,正如我所说,有些bug并没有写到发布的bug列表中,如TextPrompt不显示的问题. 2.解决了对象释放的问题 基于XE7,我做了测试代码,也是我想象中,开发一个实际的项目要用到很多Form,并且是用到时再建立,需要的话,用完就释放掉.为了这个想法,我测试 了很长时间,也看了相关的代码,无耐,实际的结果让人颓丧.问题就是建立一个Fo

Delphi XE之路(3)解决启动时短暂的黑屏

以下转自玻璃城市的博客,已经在我手机上测试成功!不过带来一个新的问题,在手机横向时程序会停止执行???    delphi xe5 编译的程序在启动时会有短暂的黑屏出现,这个现象产生是因为启动首个activity时会加载一些初始化数据,整个时间大约在2~3秒,如何处理? 网上有些资料,这里主要参考和整理了CSDN论坛上第42#liaobo的回复. 第一步:建立2个文件:loading.png 和 styles.xml,其中loading.png 是启动时替代黑屏的图片,styles.xml是对背

delphi xe 之路(27)XE7 Datasnap使用dbExpress连接MySQL

这次以MySQL为例,对MYSQL的连接进行了试验,过程中需要注意的几个点: 1.创建DataSnap的服务器端,这些都没什么说的,根据向导来,最后生成ServerMethodsUnit1模块, 2.在Data Explorer设置mysql的连接信息,当然现在是连不通的 3.在ServerMethodsUnit1模块中加入TSQLConnect.TSQLTable.TDataSetProvider三个元件. 4.选择ConnectionName为MySQLConnection,Driver选择

Delphi XE之路(10)安装XE7后XE5共存问题

   下载XE7,解压安装老是说没有足够的空间进行安装.选择D盘进行安装提示依旧,D盘空间应该足够大了.  修改windows的虚拟内存位置为D盘,提示依旧,问题在哪儿呢?  看来是C盘空间小了,清理C盘空间达到10G左右,安装开始运行!中午挂机安装,回家吃饭!  XE7安装破解之后,成功运行~!  但是XE5运行不了了??????  删除c:\program data\\Embarcadero下的.licenses..cgb_license.*.slip文件.这会导致delphi xe7不能使

delphi xe 之路(26)xe7开发的安卓程序,体积宏大

原因没找到,但似乎可以这样解决: 解决过程:因为代码很少,所以我重新建立一个空白程序,把代码复制过去,一字不差.重新编译, 关键的时刻到了:不要连上真机,在编译完成时,系统提示是否要启动android模拟器,选择"不",此时退出.到bin目录下面看一看,程序大小由原来的24.3M变成了7.1M了,安装后,程序大小也由原来的122M 瘦身为 31.33M.运行也正常, 大功告成! 原因试探:xe7在编译时,可能会在真机里查找安装包,如果系统里安装库不全,就全打包到程序里了.是否这样,尚不

delphi xe 之路(29)安装xe7up1

遵照高人的指点,成功安装了delphi xe7 up1 1.卸载XE7时,不要点开始菜单中的卸载,要在原始安装程序中卸载: 2.UP1安装包放在U盘中进行安装: 3.用破解工具进行正确破解.

delphi xe 之路(19)clientdataset的详细介绍01

Delphi做为一个快速应用开发工具,深受程序员的喜爱.其强大的组件功能,让程序员能够轻松.高效地完成常见的界面开发.数据库应用等功能.然而,帮助的相对缺乏,使得许多组件的功能并不为人们正确地使用,究其原因,仍然是认识上的问题.对于MIDAS开发中的核心部件,TClientDataSet 和TDataSetProvider,由于资料的缺乏,人们在网上大多谈论的是李维的书籍内容.我有幸在BDN上见到了Cary Jensen的Professional Developer系列文章,详细阐述了DELPH

delphi xe 之路(20)clientdataset的详细介绍02

ClientDataSet的隐含功能------转载<Delphi 从入门到精通>                       可能与前面的笔记有重复的地方     ClientDataSet组件支持很多特性,其中一些与三级结构有关,而且还可以用在其他环境中.该组件说明了一个数据库完全映象在内存 中,这使得可以进行动态的操作,如建立一个索引,其他数据集合通常不支持该特性.例如,为了对查询分类,我们通常是重新执行它. 为了索引一个局部表格,需要定义索引.只有ADO数据集合有一些与ClientDa

Delphi XE之路(13)开发数据库三层应用的DataSnap

我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计: (1)利用向导完成DataSnap服务器的框架,如下图: 由于是实验,所以选择VCL程序,如果是实际应用,建议Service程序 我习惯使用TCP/IP作为通讯协议,简单且速度快,Sample Methods是演示和测试用 缺省211端口 使用TDSServerModule作为数据服务提供主体,非常方便变更为Service应用服务   (2)设置服务器数据 在TDSS