在典型的pylint运行中,我们得到以下输出:
Global evaluation
-----------------
Your code has been rated at 9.50/10 (previous run: 8.50/10)
Duplication
-----------
+-------------------------+------+---------+-----------+
| |now |previous |difference |
+=========================+======+=========+===========+
|nb duplicated lines |0 |0 |= |
+-------------------------+------+---------+-----------+
|percent duplicated lines |0.000 |0.000 |= |
+-------------------------+------+---------+-----------+
Run Code Online (Sandbox Code Playgroud)
我想知道pylint如何记住之前运行的分数 - 在上面的例子中,上一次运行的分数是8.5.
我想在我自己的模块中实现这样的功能,我想我应该首先找出pylint如何实现这个功能.
我搜索了可以存储此数据的隐藏文件夹,但没有找到.
我有一个for循环,我在其中创建一个本地cv :: Mat对象来存储图像.代码如下所示:
for (int iter = 0; iter < totalNumberOfIterations; iter++)
{
cv::Mat I = cv::imread(argv[1], 0);
std::cout << "Reference count I: " << *I.refcount << std::endl;
I.release();
}
Run Code Online (Sandbox Code Playgroud)
在循环的第一次迭代期间,我发现内存是为变量"I"分配的,当我调用I.release()时它被释放.在后续迭代期间,内存未被释放,我程序的RAM消耗保持不变.似乎OpenCV为变量"I"保留了用于优化目的的内存.这是真的?
变量"I"(*I.refcount)的引用计数在for循环的所有迭代中保持为1 .
我正在使用OpenCV 2.4.4,我正在使用gcc 4.6.4编译我的代码.为了检查内存消耗,我在Ubuntu 13.04机器上使用命令"top".
编辑:当我不强制OpenCV读取灰度图像时,我注意到内存正在为变量"I"释放.(注意在imread命令中第二个参数设置为"1").
cv::Mat I = cv::imread(argv[1], 1);
Run Code Online (Sandbox Code Playgroud)