泊松表面重建中主函数中部分代码分析-关于内存设置

 1 //总体来看是和内存设置有关的
 2 #if defined(WIN32) && defined(MAX_MEMORY_GB)
 3     if( MAX_MEMORY_GB>0 )
 4     {
 5         //SIZE_T是ULONG_PTR类型又是unsigned __int64类型取值范围为2到2的64次方,貌似和64为操作系统支持的理论内存值有关系
 6         SIZE_T peakMemory = 1;
 7         peakMemory <<= 30;//peakMemory等于peakMemory(1)乘以2的30次方,2的30次方就是1GB,也就是说peakMemory是1GB
 8         peakMemory *= MAX_MEMORY_GB;
 9         //%.2f宽度无限制,小数点后保留两位
10         printf( "Limiting memory usage to %.2f GB\n" , float( peakMemory>>30 ) );
11         //创建了一个工作对象(lpJobAttributes,lpName)安全属性+工作对象名称
12         HANDLE h = CreateJobObject( NULL , NULL );
13         AssignProcessToJobObject( h , GetCurrentProcess() );
14
15         JOBOBJECT_EXTENDED_LIMIT_INFORMATION jeli = { 0 };
16         jeli.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_JOB_MEMORY;
17         jeli.JobMemoryLimit = peakMemory;
18         if( !SetInformationJobObject( h , JobObjectExtendedLimitInformation , &jeli , sizeof( jeli ) ) )
19             fprintf( stderr , "Failed to set memory limit\n" );
20     }
21 #endif // defined(WIN32) && defined(MAX_MEMORY_GB)
时间: 2024-10-10 12:32:44

泊松表面重建中主函数中部分代码分析-关于内存设置的相关文章

泊松表面重建中PoissonRecon.cpp源码分析

独学而无友,则孤陋而寡闻.深知独学的无奈,深知无友的感慨,所以个人将学习研究过程当中遇到的.学习到的东西分享出来,只为有志同道合的朋友互相交流,共同进步. 有一QQ群:285214996,希望汇聚所有这个领域的朋友,我们一起分享学习的快乐. 泊松表面重建中会PoissonRecon.cpp文件,下面是我个人在研究过程当中的分析过程,定有不当之处,还请指出. 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.

用三个函数分别实现求三角形,正方形,圆形面积(所有底高半径都由用户 输入);在主函数中,通过用户不同的选择分别进行调用;

/*2.用三个函数分别实现求三角形,正方形,圆形面积(所有底高半径都由用户输入):在主函数中,通过用户不同的选择分别进行调用:*/ #include <stdio.h>#define P 3.14double sanjiao(double di,double gao){ double mianji = (di * gao)/2 ; return mianji;} double zhengfangxing(double bian){ double mianji2 = bian*bian; ret

用函数实现登陆功能(三次机会),然后在主函数中根据调用后的结果判断 登陆成功与否。

/*3.用函数实现登陆功能(三次机会),然后在主函数中根据调用后的结果判断登陆成功与否.*/#include <string.h>int numb(char use[] ,char password[] ){ if((strcmp(use,"zhouyi")==0)&&(strcmp(password,"nb")==0)) { return 1; } else { return 0; } } #include <stdio.h>

10.4 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图.写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数. 看了下上机指导上的答案,感觉自己写的这段代码有点low. //一个数组一个指针 #include <stdio.h> #define N 10 #define M 3 int b[N]; int * p=b; int main(){ void change(int a[N],int m); int a[N]={1,2,3,4,5,6,7,8,9,0};

程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。

程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成绩一次是:10002."ZhangQi".93.85.87,修改后输出t中的数据应为:10004."Lijie".93.85.87. #include <stdio.h>#include <string.h>struct student { lo

通过指针子函数中分配内存,在主函数中实现赋值

实现了在子函数中分配内存,在主函数中实现赋值或对其值的修改. 原文地址:https://www.cnblogs.com/jefy/p/9383899.html

泊松表面重建源码分析

在泊松表面重建的源码中有如下一段代码: 1 #include <stdio.h> 2 #include <stdarg.h> 3 #include <string.h> 4 5 //将结果写入的目标文件 6 char* outputFile = "DumpOutPutTest.txt"; 7 //echoStdout控制是否通过控制台显示出来 8 int echoStdout = 1; 9 10 void DumpOutput(const char*

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

[cpp] view plain copy // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <crtdbg.h> /// 在C++工程中main函数之前跑代码的廉价方法 /// 利用全局变量可以赋可变初值的事实 /// mainCRTStartup() => _cin