本该去年年初写的一篇博文,一直被拖到现在。
去年年初公司针对系统过慢 进行一次全面优化,虽说效果不太理想,但是其中我们用到的方法和技术还是可以拿过来学习的。
系统过慢优化主要分两个方面进行,第一代码部分,第二 数据库部分。
由于这个程序已经是很多年以前的了,不知道什么原因现在有两个代码近乎相同的版本,只不过framework版本不一样,当时好像是为了兼容某个framework2.0的客户单独分出来的一个版本,所以造成现在修复一个bug需要在两份代码中都写。 所以现在如果需要对代码进行优化的话,肯定先把两份代码进行合并了。
两份代码合并很简单,就是把不一样的复制一下 修修改改,但是现在是两个framework版本不一样的项目,如果简单的复制的话 ,会造成在生成framework2.0项目的情况下,一些framework4.0的特性会出现变异错误的问题。 最后经过讨论决定采用条件编译的方式进行合并代码。 这样的好处是不同的版本可以用不同的编译条件进行编译,这样就避免报错。
第一步,将两份代码通过业务逻辑的整合修改,进行物理上的合并。然后右键解决方案点击属性 ,在生成=》条件编译符号中填写你命名的一个字符串作为一个条件编译符号。
第二步在代码中,将有版本冲突或者是逻辑冲突的地方加上条件编译 类似如下图,语法是 #if 后面加上在属性中写的编译符号 结尾的地方需要加上#endif 中间可以有#else if,如果属性中条件编译符号与代码中#if后面的相同 那么这段代码在编译的时候会被编译到,反之这段代码是不会被编译而且颜色为灰色。这样生成的时候我们只需要改一下生成的framework版本和对应编译条件符号然后在代码中写下相对应的代码 就不会出现错误了。 如果你觉得每次都改版本和条件编译符号麻烦的话,我们可以建立多个项目,以其中某个项目为主,其他的项目的文件都是引用这个项目的文件,这样他们都是同一套代码,然后在项目的属性修改一下条件编译符号与framework版本,这样需要生成那个版本就不需要修改条件编译符号了,直接找到这个项目生成即可。 具体步骤为:新建一个项目=》建立相同的目录文件夹=》右键添加现有项=》找到主项目中的文件=》点击添加旁边的按钮下面有个添加为链接。 =》修改条件编译符号=》生成对应的项目即可。这样就不用每次都改条件编译符号了。