zoukankan      html  css  js  c++  java
  • Sciter/HTMLayout内存占用评测

    先从最基础的Exe文件的执行说起:

    Exe文件要在系统中执行,首先要将Exe文件本身加载入内存中,并且通常在内存中加载完成的Exe所占空间大小会比实际所占的磁盘空间大一些,这是由内存的特殊设定所决定的。其次,由于我们是使用的官方提供的DLL来完成Sciter引擎的工作,并且这种操作不是动态调用的,所以,每次程序运行都会自动加载DLL文件进入内存,然后才能完成引擎的调用操作。这里的Exe和DLL都是PE文件的一种,具有基本相同的特性。

    所以,程序运行时的最小内存(即完全不进行其他分配内存的操作的情况)应该是比Exe+DLL磁盘空间大小多一些,具体的多多少需要根据程序的结构和使用内容而定,不一而足。

    上面的分析只是计算了程序内存分配的下限,另外,程序在执行过程中,由于需要分配一些用于计算和存储用的临时空间(如绘图、计算、渲染、手工分配等),程序的内存占用是无法估计出相对上限的。

    注:如果程序经过UPX等加壳压缩一类的程序处理后,其内存占用还会进一步加大

    下面就SC和HL做一些实际的对比分析:

    环境:VS2010+Win7 32位

    1、Sciter篇

    首先需要看一下所有程序公用的DLL(原版,未压缩):

    sc3

    其体积已达到庞大的3.6M,考虑到内存加载的情况,可以估计实际运行时至少会占用5M左右的内存空间(仅做猜测)。

    plain-win.exe 是Sciter官方自带的HTML内容最简单的win32 Demo程序,自身只有108K,它的样式和内存占用如下:

    内存:

    dem1

    样式:

    dem2

    SciterFrame.exe是我自己写的一个MFC框架下测试用的Frame,资源内嵌,Release静态编译下大小3.85M,和plain-win.exe 相比,使用了16张,共252K左右大小的图片,使用了Tiscript,由于素材和样式UI都来自360,我把它与360自身对比截图,其数据如下:

    内存:

    Sciter1

    界面:

    Sciter2

    小结:Sciter程序最低运行内存大概在10M左右,使用Tiscript脚本会加剧内存消耗,图片资源过多是消耗内存的重点。

    PS:据说360就是使用SC/HL做的界面,个人觉得更像是SC。SciterFrame程序的图片是360原版的,UI仿照很相似,所以可将360作为源码编译的一个内存对比对象,相比而下,SciterFrame与360确实相差不大(SciterFrame程序内部没有复杂的实际功能)。

    2、HTMLayout篇

    同样,首先看下公用DLL的大小

    hl3

    HTMLayout.dll 只有944K(是否压缩未知),相比Sciter32.dll庞大的3.6M绝对是轻量级的装备了!

    HTMLayoutTest.exe 同样是我使用Win32编写的一个Demo,其界面不含图片,只有一些CSSS!和HTML。

    内存:

    hl1

    界面:

    hl2

    mfc_browse.exe 也是官方提供的最简单的一个win32框架,其数据如下:

    内存:

    b

    界面:

    a

    小结:Htmlayout程序的最小内存大约5.6M左右,使用CSSS!轻微消耗内存(复杂功能消耗情况未知),图片同样是内存消耗的重点。


    综述:

    我们很容易猜出,Tiscript是SC/HL内存消耗的分水岭,差距大约5M左右,但是面对Sciter强大的脚本功能(特别是内置Sqlite等),类Javascript的脚本设计,极大地方便了UI与底层的对话,如果不是对于内存要求特别严格的情况下,还是建议使用Sciter。

    在发布程序时,Sciter程序建议UPX压缩一下,个人实际测试,主程序压缩率22.3%,Sciter.dll 压缩后1.27M。

    个人CSDN博客: http://blog.csdn.net/bbdxf

    cnBlogs博客:http://www.cnblogs.com/bbdxf

    CSDN博客:http://blog.csdn.net/bbdxf
    CNBlogs: http://www.cnblogs.com/bbdxf
    本博客内容为本人原创,如有转载请保留出处!尊重他人就是尊重自己!

  • 相关阅读:
    火狐插件火狐黑客插件将Firefox变成黑客工具的七个插件
    memcache安装环境:WINDOWS 7
    PHP正则表达式
    968. 监控二叉树 力扣(困难) dfs 官方说DP
    375. 猜数字大小 II 力扣(中等) 区间动态规划、记忆化搜索
    629. K个逆序对数组 力扣(困难) 区间动态规划
    剑指 Offer 51. 数组中的逆序对 力扣(困难) 巧用归并排序算法
    488. 祖玛游戏 力扣(困难) dfs
    16. 最接近的三数之和 力扣(中等) 双指针
    319. 灯泡开关 力扣(中等) 数论
  • 原文地址:https://www.cnblogs.com/bbdxf/p/3366848.html
Copyright © 2011-2022 走看看