修复VS,恢复初始状态
命令提示 输入命令: devenv.exe /resetuserdata
处理版本221优化改动:
1、SQL优化,采用预编译方式并将SQL语句修改为大写,尽量减少Oracle数据库硬解析
2、复用部分代码,减少变量的重复计算
3、根据最小知识原则、变量作用域最小化原则控制数据安全访问
4、部分变量由堆变量改为栈变量,内存及时释放
5、数据运算尽量采用位运算提升运算效率
最小知识原则:例如能使用private不使用public,对于实体之外的其他对象可见性最小
变量作用域最小化原则:
例如能使用局部变量不使用全局变量,JAVA垃圾回收器能够在最快时间内回收该变量
避免相同对象的重复创建:例如for循环需创建新对象,对象的创建置于循环外
堆变量、栈变量:
变量的创建尽量置于方法体内,
尽量减少方法调用次数(例如for循环,尽量避免for(int i=0;i<list.size();i++)类似操作,改为for(int i=0,length=list.size();i<length;i++)),
减少非必要static变量的创建,避免非必要变量或实体在内存常驻
IO、DB等操作时IO流、数据库链接的手动关闭、释放
系统服务程序,在服务的OnStart事件里面使用ADOConnection连接数据库,连接字符串没有问题,但是为什么在ADOConnection->Open()的时候,提示“尚未调用 CoInitialize”??这是什么原因?
1.没有初始化COM空间,用COINITIALIZE();
#include "utilcls.h"
在Dll中使用ADOQuery需要调用
CoInitialize(NULL);
来初始化COM,(ado是COM),否则会出错。
结束时
CoUninitialize();