查看程序使用内存(不包含运行内存)的方式
看运行内存好像\(\text{Linux}\)好写亿点,但是不会\(\text{Linux}\)。
下列数据内存与数据的存储范围为此得出(以int为例):
cout<<sizeof(int)<<"Byte"<<endl;
cout<<numeric_limits<int>::min()<<endl;
cout<<numeric_limits<int>::max()<<endl;
法一是手算内存
数据类型 | 占用内存 |
---|---|
short int | 2 Byte |
int | 4 Byte |
long long | 8 Byte |
float | 4 Byte |
double | 8 Byte |
char | 1 Byte |
long double 本机得是16 Byte。但是查了一下特性啥的,目前没有考场用这个的想法
还有一些容器的测试内存,个人猜测\(\text{sizeof}\)只计算容器内存而不计算容器存储数据内存。容器存储数据类型似乎也不影响内存
容器内存的这个问题或许也印证了pb老师博客里所指的:
容器类型 | 占用内存 |
---|---|
string | 8 Byte |
stack | 80 Byte |
queue | 80 Byte |
set | 48 Byte |
map | 48 Byte |
unordered_map(C++11only) | 56 Byte |
原来还要开-std=c++11
..
顺带记一下警告-Wall -Wextra -Wconversion
开栈-Wl,--Stack=998244353
。后面数字单位\(\text{Byte}\)。
吸氧-O2
我记得开\(\text{O2}\)有返回值类型函数不返回会\(\text{RE}\),可得注意一点。
法二是科技(?
编译一下,然后size 文件路径
就好了。占用是\(\text{dec}\)那一列,单位\(\text{Byte}\)。
大概算了一下差不多()
不过听教练说过学校神仙\(\text{NOI}\)算了内存依然挂分这样的事情。程序运行依然要花费内存,但是这个花费的量级我还得考究一下....
呜呜,去年要是没\(MLE\)我现在已经退役了(
手残开了快\(\text{1}\)个\(\text{G}\)