摘要:更新历史——[2012-3-30] V1.1.1* 调整重建大明系列决议,仅移除关内地区的CHI核心。* 放松“独立自治”决议的条件。当CHI失去对北京的军事控制时便可执行。* 当不同意“清帝退位”时,次国家触发“响应革命”事件。+ 新决议——重回关东、天朝正统、重建大明(君宪)。& 文本修订。下载地址——http://115.com/file/e7lxruw6http://u.xunzai.com/fileview_1088987.html更多内容——http://www.cnblogs.com/zyl910/archive/2012/02/17/RecoverMingV_V1.ht
阅读全文
随笔分类 - --- My_原创
摘要:前面我们测试了C系列语言,验证了位掩码算法的确实性能不错。那么对于Basic系列语言,该算法的效率怎样呢?于是本文对此进行探讨。 VB.Net与C#一样,也是由.Net虚拟机执行的,没有多大的测试价值。所以我决定测试VB6。一、移植要点 VB6的功能与C系列语言差很多。很多地方需要换另一种方法去实现,甚至不能实现。 要点有——1.VB6不支持控制台程序,只支持窗口程序。所以我们的测试程序得修改为窗口程序。2.VB6不支持指针,所以依靠数组。幸好现在的操作比较简单,用数组的性能损失不大。3.VB6没有带符号移位运算法,所以无法实现f3_sar函数。4.VB6和C#一样不支持宏,所以得手...
阅读全文
摘要:前面我们测试了C语言这样纯编译型语言。那么对于像C#这样由虚拟机执行的语言,“位掩码代替分支”法是否也有效果呢?于是本文对此进行探讨。一、移植要点 C#的语法与C语言很相像,多数代码可以直接用,但要注意以下几点。1.1 unsafe——不安全上下文 C#虽然支持指针,但必须在unsafe——不安全上下文 中才能使用。 要使用unsafe,必须先配置项目属性,允许不安全代码——1.项目->属性,打开项目的属性页。2.点击左侧“生成”,切换到“生成”页。3.点击上侧的“配置”组合框,选择“所有配置(C)”。4.勾选“常规”中的“允许不安全代码(F)”。5.点击工具栏上的“保存”按钮。 ...
阅读全文
摘要:前面我们用VC6测试了位掩码代替分支的速度。VC6是1998年发售的,离现在有14年了。在14年里,Intel与AMD的CPU都换了好几套微架构了,VC6编译器很可能无法充分发挥它们的性能。而且,从2003年AMD推出了64位处理器开始,现在64位系统越来越普及,我们希望测试64位下的性能。 于是选择最新的VC系列编译器——Visual C++ 2010,它是2010年发售的,支持x64平台。一、代码改进1.1 通用字符处理——tchar.h 传统的Windows程序一般使用ANSI+DBCS字符集。而从Windows NT开始,Windows内核采用Unicode字符集。但那时基于A...
阅读全文
摘要:wuhanbingwhdx提到了数据相关也会影响流水线(http://blog.csdn.net/zyl910/article/details/1330614)。 他的说法是有一定道理的。但是,在很多时候我们并不仅仅处理一个数值。比如将循环展开,在内循环处理2个或更多个的数值。而现代编译器面对循环展开时,在编译优化操作中会调整指令顺序,错开有相关性指令。因现代处理器支持超标量,这样的指令顺序调整能获得较好的指令级并行度,从而优化了性能。 其次,就算编译器对循环展开优化的不够彻底,没将相关性指令错开。但因现代处理器支持乱序执行,当遇到相关性指令需要等待时,处理器会处理后面未相关的指令,从...
阅读全文
摘要:查看编译器生成的汇编代码,有助于我们分析程序的性能。1 让VC6输出编译的汇编代码 用VC6打开前一篇文章(http://www.cnblogs.com/zyl910/archive/2012/03/12/noifopex1.html)的工程“noifCheck.dsw”。 首先需要配置项目设置——1.点击菜单栏 “工程”->“Project Settings”打开“Project Settings”对话框。2.将“Settings For:”设为“Win32 Release”。3.将右侧的选项卡换到“C/C++”面板。4.点击“Category:”组合框,选择“Listing Fil.
阅读全文
摘要:几年前我写了一篇“优化分支代码——避免跳转指令堵塞流水线”(http://blog.csdn.net/zyl910/article/details/1330614)。因当时是整理笔记,有些粗略。这几年又有了新的心得,故决定深入探讨,顺便回答网友评论。 housisong(http://blog.csdn.net/housisong)提到了用利用带符号移位生成掩码——(假设n是32bit有符号数): (n>>31) 当n>=0的时候结果为0x00000000,当n<0时得到0xFFFFFFFF掩码,然后利用该掩码来合并分支。 这是一个很好的思路,避免了状态寄存器访问。 但
阅读全文
摘要:更新历史——[2012-3-9] V1.1.0& 兼容最新的 AHD 2.21beta(2012-02-25)+ 增加辛亥革命事件组。* 调整“重建大明(北京)”决议,仅在CHI未开化时有效。* 规范化次国家名称(粤桂、云贵、东北)。* 微调了湘鄂的颜色,避免与陕甘混淆。* 旅顺属于MCK东北。& 文本修订。下载地址——http://115.com/file/an998uhy更多内容——http://www.cnblogs.com/zyl910/archive/2012/02/17/RecoverMingV_V1.html[维多利亚2 MOD] RecoverMingV(Vic
阅读全文
摘要:参考文献——《Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2 (2A, 2B & 2C): Instruction Set Reference, A-Z》. December 2011. http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.h
阅读全文
摘要:File:Intrinsics头文件描述:指令集描述VS:Visual Studio版本号VisualStudio:Visual Studio版本名File描述VSVisualStudiointrin.hAll Architectures8.02005mmintrin.hMMX intrinsics6.06.0 SP5+PP5xmmintrin.hStreaming SIMD Extensions intrinsics6.06.0 SP5+PP5emmintrin.hWillamette New Instruction intrinsics (SSE2)6.06.0 SP5+PP5pmmint
阅读全文
摘要:自1996年的MMX指令集以来,Intel和AMD不断为x86体系添加新的SIMD指令集。时至2012年,Intel的Ivy Bridge即将发布,这16年来SIMD指令集有了哪些发展呢?于是我决定整理一份SIMD指令集的发展历程表。通过阅读Intel和AMD的手册,以及搜索网上资料,我初步完成了这项工作。表格如下—— 指令集条DateICPUIDateACPUADateMemoMMX571996-10-12Pentium MMX(P55C)1996-10-12K61997-4-1MultiMedia eXtensionSSE701999-5-1Pentium III(Katma...
阅读全文
摘要:如今64位系统越来越流行了,对于软件开发人员来说,掌握64位开发技术将会有更好的发展空间。而且经过这几年的发展,64位开发工具也成熟了,例如Visual Studio 2010。 关于如何配置64位平台,MSDN上有详细的介绍——http://msdn.microsoft.com/zh-cn/library/9yb4317s.aspx如何:针对 64 位平台配置 Visual C++ 项目 在很多时候,我们希望能兼容老系统,于是配置了两个编译平台——Win32 和 x64。 但光这样做还是不够的,因为老系统不支持某些新功能。所以我们需要在运行时动态动态判断。 最常见的判断有两种——...
阅读全文
摘要:支持——1.欧陆风云3(Europa Universalis 3)至资料片5.0神风(Divine Wind)。2.欧陆风云:罗马(Europa Universalis : rome)至资料片2.0成王败寇(Vae Victis)。3.维多利亚2(Victoria 2)至资料片2.0阋墙(A House Divided)。4.钢铁雄心3(Hearts of Iron 3)至资料片3.0为了祖国(For the Motherland)。5.王国风云2(Crusader Kings 2)。6.戦國(Sengoku)。 本工具适用于以下情况——1.mod开发人员。2.日文汉化版省份查找问题。将...
阅读全文
摘要:该补丁的作用——1.调整省份区划,使其更接近清1820年省份区划。2.调整区域颜色,使其容易分辨。安装方法——将压缩包中的文件解压到维多利亚2的主目录,覆盖同名文件。http://files.cnblogs.com/zyl910/fixmap_chi_v2.0.rar注意事项~~~~~~~~1.存档兼容性问题。如果中国地区没有建造过工厂,就能继续玩存档。如果建造过,读取存档可能会出问题。请使用压缩包中bak\map文件夹内的“region.txt”恢复原版的省份区划。更新历史~~~~~~~~[2012-02-04] V2.01. 支持资料片 AHD(阋墙)V2.1。2. 为保证稳定性,区划微调
阅读全文
摘要:一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive/2011/12/14/x264_encode_param.html 测试参数——trellis:0、1、2。执行Trellis quantization来提高效率。0、停用;1、只在一个宏区块的最终编码上启用;2、在所有模式决策上启用。参考测试:trellis 0。 默认参数——--profile main --preset medium --tune ssim --crf 26.0 --threads 2 --bframes 3 --ref 3 --mer...
阅读全文
摘要:数据表的结构是——CREATE TABLE [dbo].[ac_mainctls_new] ([id] [int] NULL ,[ctlip] [bigint] NULL ,[ctlname] [char] (30) COLLATE Chinese_PRC_CI_AS NULL ,)其中ctlip是设备的IP地址,以整数方式存储。虽然可以用程序将整数转为IP字符串,但多了一道工序有点麻烦。于是我想直接在SQL查询语句中将其转为IP字符串。经过思索与调试,我完成了该查询语句——SELECT CAST(ctlip / 0x1000000 AS varchar(3)) + '.' +
阅读全文
摘要:一、测试内容 测试方法——x264编码参数大测试:索引贴http://www.cnblogs.com/zyl910/archive/2011/12/14/x264_encode_param.html 测试参数——trellis:0、1、2。执行Trellis quantization来提高效率。0、停用;1、只在一个宏区块的最终编码上启用;2、在所有模式决策上启用。参考测试:trellis 0。 默认参数——--profile main --preset medium --tune ssim --crf 26.0 --threads 2 --bframes 3 --ref 3 --mer...
阅读全文
摘要:新版本——http://www.cnblogs.com/zyl910/archive/2012/08/16/Gunpowder_Magazine_and_Firecracker_Workshop_V2.htmlGunpowder Magazine and Firecracker Workshop (火药库与爆竹坊){Rule} Steel technology found [ICON_RES_COAL] Coal. (获得炼钢科技时发现煤矿){New Building} Gunpowder Magazine(火药库): +15% [ICON_PRODUCTION] Production whe
阅读全文