2月
#pragma make_public(type)
托管C++导出传统C++类,另一个托管C++项目使用不了。传统C++类make_public后,就可以使用了。对模板类无效,比如:std::string。
C#线程绑定CPU
我的方案:
假定我们想把 CPU0 设置成专有CPU。
定时将其它进程设置成占有除专有CPU以外的其它CPU。
将本进程设置成除 有CPU以外的其它CPU。
将本线程设置成所有CPU,优先使用CPU0。
2月14
今天和领导同事沟通,讨论到Windows的任务管理器的资源占用,是不是实时的。分配内存后,马上释放,任务管理器能否发现。测试过程:分配100M内存并memset,Sleep(100),释放内存,Sleep(100)。任务管理器交替显示10M和110M内存。释放得越早,10M出现的几率越多。perfmon工具也监控不到。
QQ微信存留
发现 QQ 存留,比微信高。 我优先加微信,加不了微信,才加QQ。QQ好友22,微信好友20。 QQ被对方删除好友,就变成陌生人。 所以微信好友很可能不到20,QQ好友是实打实的22。HR估计年轻人用QQ更多。后来查了下,微信好友有2个没通过,QQ好友有3个没通过。 微信通过率略高。
3月
函数结束时崩溃
同事告诉我用windgb调试,发现在函数结束时崩溃。怀疑崩溃在局部变量的析构函数。
建议用指针临时代替局部变量 ,看是不是 delete崩溃。比如:
cv::Mat mInputImg;
改成:
cv::Mat *pmInputImg;
//...
delete pmInputImg;
也可以用智能指针。 ptr = nullptr; 会调用析构函数。
class CTest
{
public:
~CTest()
{
std::cout << "析构函数";
}
};
int _tmain(int argc, _TCHAR* argv[])
{
std::shared_ptr<CTest> ptr = std::make_shared < CTest>();
ptr = nullptr;
std::cout << "安全指针置为空";
}
最终原因:我同事更新的时候忘记更新某些dll。
find可以通过,count不能
else if( m_setMid.end() != m_setMid.find(iDel))
以下代码就通过
else if (m_setLeft.count(iDel))