【关于内存管理:争议很大的问题】
文 | 小林coding
出品 | 小林coding(ID:CodingLin )
已获得原公众号的授权转载
早上看到读者在群里讨论这些面试题(下图1):
其中,第一个问题「在 4GB 物理内存的机器上,申请 8G 内存会怎么样?」存在比较大的争议,有人说会申请失败,有的人说可以申请成功。
这个问题在没有前置条件下,就说出答案就是耍流氓。因为在 32 位操作系统和 64 位操作系统场景下,答案是不同的。
另外,我们还要看申请完 8G 内存后会不会被使用,会被使用是一种情况,不会被使用又是另外一种情况了。
所以,我们要分场景讨论。
正文
应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。
当应用程序读写了这块虚拟内存,CPU 就会去访问这个虚拟内存, 这时会发现这个虚拟内存没有映射到物理内存, CPU 就会产生缺页中断,进程会从用户态切换到内核态,并将缺页中断交给内核的 Page Fault Handler (缺页中断函数)处理。
缺页中断处理函数会看是否有空闲的物理内存:
如果有,就直接分配物理内存,并建立虚拟内存与物理内存之间的映射关系。
如果没有空闲的物理内存,那么内核就会开始进行回收内存的工作,如果回收内存工作结束后,空闲的物理内存仍然无法满足此次物理内存的申请,那么内核就会放最后的大招了触发 OOM (Out of Memory)机制。
32 位操作系统和 64 位操作系统的虚拟地址空间大小是不同的,在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,如下所示:
通过这里可以看出:
32 位系统的内核空间占用 1G,位于最高处,剩下的 3G 是用户空间;
64 位系统的内核空间和用户空间都是 128T,分别占据整个内存空间的最高和最低处,剩下的中间部分是未定义的。
现在可以回答这个问题了:在 32 位操作系统、4GB 物理内存的机器上,申请 8GB 内存,会怎么样?
因为 32 位操作系统,进程最多只能申请 3 GB 大小的虚拟内存空间,所以进程申请 8GB 内存,在申请虚拟内存阶段就会失败(我手上没有 32 位操作系统测试,我估计失败的原因是 OOM)。
在 64 位操作系统、4GB 物理内存的机器上,申请 8G 内存,会怎么样?
64 位操作系统,进程可以使用 128 TB 大小的虚拟内存空间,所以进程申请 8GB 内存是没问题的,因为进程申请内存是申请虚拟内存,只要不读写这个虚拟内存,操作系统就不会分配物理内存。
我们可以简单做个测试,我的服务器是 64 位操作系统,但是物理内存只有 2 GB。
图2
现在,我在机器上,申请 4 GB 内存,注意下面代码只是单纯分配了虚拟内存,并没有使用该虚拟内存:
#include
#include
#include
#include
#include
int main() {
int ret;
char* addr[4];
printf("使用cat /proc/%d/maps查看内存分配\n",getpid());
size_t s = 1024 * 1024 * 1024;
int i = 0;
for(i = 0; i < 4; ++i) {
printf("alloc size = %d\n", s);
addr[i] = (char*) malloc(s);
printf("主线程调用malloc后,申请1gb大小得内存,此内存起始地址:0X%x\n", addr[i]);
}
getchar();
return 0;
}
然后运行这个代码,可以看到,我的物理内存虽然只有 2GB,但是程序正常分配了 4GB 大小的虚拟内存:

我们可以通过下面这条命令查看进程的虚拟内存大小:
# ps aux | grep alloc_4g
USER PID %CPU %MEM VSZRSS TTYSTAT STARTTIME COMMAND
root7797 0.0 0.0 4198540 352 pts/1 S+16:580:00 ./alloc_4g
其中,VSZ 就代表进程使用的虚拟内存大小,RSS 代表进程使用的物理内存大小。可以看到,VSZ 大小为 4198540,也就是 4GB 的虚拟内存。
然后,我们改一下代码,在申请完虚拟内存后,通过 memset 函数使用这个虚拟内存,看看会发生什么。
#include
#include
#include
#include
#include
int main() {
int ret;
char* addr[4];
printf("使用cat /proc/%d/maps查看内存分配\n",getpid());
size_t s = 1024 * 1024 * 1024;
int i = 0;
for(i = 0; i < 4; ++i) {
printf("alloc size = %d\n", s);
addr[i] = (char*) malloc(s);
printf("主线程调用malloc后,申请1gb大小得内存,此内存起始地址:0X%x\n", addr[i]);
//访问虚拟内存
memset(addr[i], 0, s);
}
getchar();
return 0;
}
运行结果:
图4
可以看到,在申请了 2GB 虚拟内存后,然后马上使用了这块虚拟内存,由于这台机器的物理内存只有 2 GB,所以发生了 OOM。
至此, 验证完成了。简单总结下:
在 32 位操作系统,因为进程最大只能申请 3 GB 大小的虚拟内存,所以直接申请 8G 内存,会申请失败。
在 64位 位操作系统,因为进程最大只能申请 128 TB 大小的虚拟内存,即使物理内存只有 4GB,申请 8G 内存也是没问题,因为申请的内存是虚拟内存,等这块虚拟内存被访问了,因为物理空间不够,就会发生 OOM。
https://t.cn/A6XkOzhh
namo-amitabhaya!
文 | 小林coding
出品 | 小林coding(ID:CodingLin )
已获得原公众号的授权转载
早上看到读者在群里讨论这些面试题(下图1):
其中,第一个问题「在 4GB 物理内存的机器上,申请 8G 内存会怎么样?」存在比较大的争议,有人说会申请失败,有的人说可以申请成功。
这个问题在没有前置条件下,就说出答案就是耍流氓。因为在 32 位操作系统和 64 位操作系统场景下,答案是不同的。
另外,我们还要看申请完 8G 内存后会不会被使用,会被使用是一种情况,不会被使用又是另外一种情况了。
所以,我们要分场景讨论。
正文
应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。
当应用程序读写了这块虚拟内存,CPU 就会去访问这个虚拟内存, 这时会发现这个虚拟内存没有映射到物理内存, CPU 就会产生缺页中断,进程会从用户态切换到内核态,并将缺页中断交给内核的 Page Fault Handler (缺页中断函数)处理。
缺页中断处理函数会看是否有空闲的物理内存:
如果有,就直接分配物理内存,并建立虚拟内存与物理内存之间的映射关系。
如果没有空闲的物理内存,那么内核就会开始进行回收内存的工作,如果回收内存工作结束后,空闲的物理内存仍然无法满足此次物理内存的申请,那么内核就会放最后的大招了触发 OOM (Out of Memory)机制。
32 位操作系统和 64 位操作系统的虚拟地址空间大小是不同的,在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,如下所示:
通过这里可以看出:
32 位系统的内核空间占用 1G,位于最高处,剩下的 3G 是用户空间;
64 位系统的内核空间和用户空间都是 128T,分别占据整个内存空间的最高和最低处,剩下的中间部分是未定义的。
现在可以回答这个问题了:在 32 位操作系统、4GB 物理内存的机器上,申请 8GB 内存,会怎么样?
因为 32 位操作系统,进程最多只能申请 3 GB 大小的虚拟内存空间,所以进程申请 8GB 内存,在申请虚拟内存阶段就会失败(我手上没有 32 位操作系统测试,我估计失败的原因是 OOM)。
在 64 位操作系统、4GB 物理内存的机器上,申请 8G 内存,会怎么样?
64 位操作系统,进程可以使用 128 TB 大小的虚拟内存空间,所以进程申请 8GB 内存是没问题的,因为进程申请内存是申请虚拟内存,只要不读写这个虚拟内存,操作系统就不会分配物理内存。
我们可以简单做个测试,我的服务器是 64 位操作系统,但是物理内存只有 2 GB。
图2
现在,我在机器上,申请 4 GB 内存,注意下面代码只是单纯分配了虚拟内存,并没有使用该虚拟内存:
#include
#include
#include
#include
#include
int main() {
int ret;
char* addr[4];
printf("使用cat /proc/%d/maps查看内存分配\n",getpid());
size_t s = 1024 * 1024 * 1024;
int i = 0;
for(i = 0; i < 4; ++i) {
printf("alloc size = %d\n", s);
addr[i] = (char*) malloc(s);
printf("主线程调用malloc后,申请1gb大小得内存,此内存起始地址:0X%x\n", addr[i]);
}
getchar();
return 0;
}
然后运行这个代码,可以看到,我的物理内存虽然只有 2GB,但是程序正常分配了 4GB 大小的虚拟内存:

我们可以通过下面这条命令查看进程的虚拟内存大小:
# ps aux | grep alloc_4g
USER PID %CPU %MEM VSZRSS TTYSTAT STARTTIME COMMAND
root7797 0.0 0.0 4198540 352 pts/1 S+16:580:00 ./alloc_4g
其中,VSZ 就代表进程使用的虚拟内存大小,RSS 代表进程使用的物理内存大小。可以看到,VSZ 大小为 4198540,也就是 4GB 的虚拟内存。
然后,我们改一下代码,在申请完虚拟内存后,通过 memset 函数使用这个虚拟内存,看看会发生什么。
#include
#include
#include
#include
#include
int main() {
int ret;
char* addr[4];
printf("使用cat /proc/%d/maps查看内存分配\n",getpid());
size_t s = 1024 * 1024 * 1024;
int i = 0;
for(i = 0; i < 4; ++i) {
printf("alloc size = %d\n", s);
addr[i] = (char*) malloc(s);
printf("主线程调用malloc后,申请1gb大小得内存,此内存起始地址:0X%x\n", addr[i]);
//访问虚拟内存
memset(addr[i], 0, s);
}
getchar();
return 0;
}
运行结果:
图4
可以看到,在申请了 2GB 虚拟内存后,然后马上使用了这块虚拟内存,由于这台机器的物理内存只有 2 GB,所以发生了 OOM。
至此, 验证完成了。简单总结下:
在 32 位操作系统,因为进程最大只能申请 3 GB 大小的虚拟内存,所以直接申请 8G 内存,会申请失败。
在 64位 位操作系统,因为进程最大只能申请 128 TB 大小的虚拟内存,即使物理内存只有 4GB,申请 8G 内存也是没问题,因为申请的内存是虚拟内存,等这块虚拟内存被访问了,因为物理空间不够,就会发生 OOM。
https://t.cn/A6XkOzhh
namo-amitabhaya!
真的看不下去每次打开唐山事件下面一堆说不要性别对立,仅仅把这件事简单归纳为罪犯实施的某个犯罪行为,对这件事的诉求仅仅是对罪犯的严惩。
他们或是看不到,或是故意忽略这件事反映的性别问题。而且几乎无一例外,打开主页性别为男。因为拥有特权的人是看不到特权的,不是身处性别弱势是看不到这种结构性问题的。
这个结构性问题就是父权秩序对女性的压迫。具体到这件事上就是,男性想性骚扰女性,可能大多数女性为了自保都会装作无事发生(而且社会鼓励要求女生这样做),或许顶多在心里骂两句,因为她们恐惧,出于对性骚扰者随时可能做出暴力行为的恐惧。但是这个女生反抗了,她大骂骚扰者,骚扰者感觉受到了挑战:“你怎么能不服从?怎么能不忍气吞声?”所以他勃然大怒大打出手,这种愤怒是出于女性对父权秩序挑战的愤怒,大打出手是对于被骚扰者不服从的惩罚,“我骚扰你的时候你就应该忍着,如果你反抗是要受到惩罚的”是这件事情的底层逻辑。
所以真的很讨厌受害者有罪论,所有在女性可能会遭受侵害的境遇下对女性的要求都是在助长这种父权制的性别压迫,就是在对本就不平衡的天平给优势方加码。
ps:对于男性能理解女性处境完全不抱什么期望(女性能随时随地共情男性的倒不少,其实父权系统对女性的规训的结果),但是真的不希望我们女生被这些模糊掉性别议题的高赞评论所误导,女生对女生的自己的处境最清楚不过了,这些事情太有可能在你我任何一个女生身上发生。
他们或是看不到,或是故意忽略这件事反映的性别问题。而且几乎无一例外,打开主页性别为男。因为拥有特权的人是看不到特权的,不是身处性别弱势是看不到这种结构性问题的。
这个结构性问题就是父权秩序对女性的压迫。具体到这件事上就是,男性想性骚扰女性,可能大多数女性为了自保都会装作无事发生(而且社会鼓励要求女生这样做),或许顶多在心里骂两句,因为她们恐惧,出于对性骚扰者随时可能做出暴力行为的恐惧。但是这个女生反抗了,她大骂骚扰者,骚扰者感觉受到了挑战:“你怎么能不服从?怎么能不忍气吞声?”所以他勃然大怒大打出手,这种愤怒是出于女性对父权秩序挑战的愤怒,大打出手是对于被骚扰者不服从的惩罚,“我骚扰你的时候你就应该忍着,如果你反抗是要受到惩罚的”是这件事情的底层逻辑。
所以真的很讨厌受害者有罪论,所有在女性可能会遭受侵害的境遇下对女性的要求都是在助长这种父权制的性别压迫,就是在对本就不平衡的天平给优势方加码。
ps:对于男性能理解女性处境完全不抱什么期望(女性能随时随地共情男性的倒不少,其实父权系统对女性的规训的结果),但是真的不希望我们女生被这些模糊掉性别议题的高赞评论所误导,女生对女生的自己的处境最清楚不过了,这些事情太有可能在你我任何一个女生身上发生。
气血不足容易早衰!
一招让你快速气血两旺:
导读一说起气血,一般人都觉得是很玄的东西。
中医认为,一个人健康的标准就是气血充足。人体的脏器就如同人一样,吃得饱了,干起活来才有劲。而血就是脏器的“饭”。
1、看眼睛
看眼睛实际上是看眼白的颜色,俗话说“人老珠黄”,其实指的就是眼白的颜色变得混浊、发黄,有血丝,这就表明你气血不足了。眼睛随时都能睁得大大的,说明气血充足;反之,眼袋很大、眼睛干涩、眼皮沉重,都代表气血不足。
2、看皮肤
皮肤白里透着粉红,有光泽、弹性、无皱纹、无斑代表气血充足。反之,皮肤粗糙,没光泽,发暗、发黄、发白、发青、发红、长斑都代表身体状况不佳、气血不足。
3、看头发
头发乌黑、浓密、柔顺代表气血充足,头发干枯、掉发、头发发黄、发白、开叉都是气血不足。
4、看耳朵
现在,人的身体素质越来越差。不信你去仔细看看,现在人的耳朵小,看上去越来越僵硬、而且形状上看上去已有些变形。就是孩子和年青人都很少能看到圆润、肥大、饱满的大耳朵了。而这些大耳朵在老人那里却很多见,这说明以前人的身体素质明显强于现代人。
小孩子看耳朵看形态,大人除了形态就主要看后天的情况了,主要看色泽、有无斑点、有无疼痛。如果呈淡淡的粉红色、有光泽、无斑点、无皱纹、饱满则代表气血充足。而暗淡、无光泽代表气血已经下降。如果耳朵萎缩、枯燥、有斑点、皱纹多,它代表了人的肾脏功能开始衰竭,你要注意了。
5、摸手的温度
如果手一年四季都是温暖的,代表人气血充足,如果手心偏热或者出汗或者手冰冷,都是气血不足。
6、看手指的指腹
无论孩子还是成人,如果手指指腹扁平、薄弱或指尖细细的,都代表气血不足,而手指指腹饱满,肉多有弹性,则说明气血充足。
7、看青筋
如果在成人的食指上看到青筋,说明小时候消化功能不好,而且这种状态已一直延续到了成年后。这类人体质弱,气血两亏。如果在小指上看到青筋,说明肾气不足。如果掌心下方接近腕横纹的地方纹路多、深,就代表小时候营养差,体质弱,气血不足。成年后,这类女性易患妇科疾病,男性则易患前列腺肥大、痛风等症。
8、看指甲上的半月形
正常情况下,半月形应该是除了小指都有。大拇指上,半月形应占指甲面积的1/4~1/5,其它食指、中指、无名指应不超过1/5。
如果手指上没有半月形或只有大拇指上有半月形的说明人体内寒气重、循环功能差、气血不足,以致血液到不了手指的末梢,如果半月形过多、过大,则易患甲亢、高血压等病。
9、看手指甲上的纵纹
只在成人手上出现,小孩不会有的。当成人手指甲上出现纵纹时,一定要提高警惕,这说明身体气血两亏、出现了透支,是肌体衰老的象征。
10、看牙龈
小孩子不明显,主要是成人。牙龈萎缩代表气血不足,只要发现牙齿的缝隙变大了,食物越来越容易塞在牙缝里,就要注意了,身体已在走下坡路,衰老正在加快。
11、看睡眠
成人如果像孩子一样入睡快、睡眠沉,呼吸均匀,一觉睡到自然醒,表示气血很足;而入睡困难,易惊易醒、夜尿多,呼吸深重或打呼噜的人都是血亏。
12、看运动
运动时如果出现胸闷、气短、疲劳难以恢复的状况,气血就不足,而那些运动后精力充沛、浑身轻松的人就很好。
最快的补血方法是什么?
补血的方法是食用高营养的各种汤以及用黑米、玉米、血糯米、大米做成的糊,再加进已加工成糊状的红枣、核桃、花生、莲子、桂圆、枸杞子等。所以病后初愈者、产后妇女、老人、孩子、身体虚弱的人,多喝各种直接消化吸收的糊,对养生及疾病的治疗特别好。
最好的补血食品是什么?
简单地说,只要吃到肚子里能消化吸收的食物,就是补血的,所以补血的前提是胃、肠道消化吸收的能力,就算吃的是粗茶淡饭,只要全部吸收,照样补血,而吃了高级的滋补品,胃、肠道不消化,依然什么用也没有。
寒凉的食物是不是都不能吃?
并不是所有的寒凉食物进入肚子里都会对身体产生负面影响,只要与人的体质、吃的季节相搭配,能起到中和、平衡的作用,就可以吃。比如夏天,人体大量出汗,而适量吃些大寒的西瓜,它能除燥热,又能补充人体因出汗多而丢失的水份、糖份,这时的西瓜对身体来讲就能起到协调、补血的作用,而天冷时吃西瓜,就易导致血亏。
寒、热食物要搭配着吃。
人见人爱的家庭补血方:
在日常的饮食中,还有很多的补血方,有兴趣的朋友,可以按下面介绍的方法去做,也可换换花样,让家人更爱吃。
红枣、桂圆、花生、红豆、红糖、白果、枸杞子都是人们常吃的补血、补肾的食品,将它们互相搭配,就成了很好的补血食疗方。红枣是补血最常用的食物,生吃效果最好。
红豆还可以在铁锅里炒黑后泡水喝,可以治疗胃寒,胃痛,再放入桂圆,就是补血、补气的茶了,特别适合教师、营业员等使用嗓子频率较高的人。如果再加上4~6粒的枸杞子,还能治疗便秘,但大便稀的人就不要加枸杞子了。
常喝红枣、桂圆、枸杞茶的女性朋友,皮肤白皙,美容效果不错。枸杞子不要放多,几粒即可,红枣和桂圆也就6~8粒就行了,每天早上上班后给自己泡一杯,不但补气血,还能明目,特别适合长期待在计算机前的工作狂们。
而没有在铁锅里炒硬、炒黑的红枣泡茶喝是没有用的,因为外皮包裹住了枣子,营养成分出不来,而经过炒制的红枣,经开水一泡,表皮都裂开了,里面的营养成分才会慢慢地渗出来。
红枣、花生、桂圆,再加上红糖,加水在锅里慢慢地炖,炖得烂烂的,经常吃,补血的效果很好。
红枣、红豆、放入糯米里一起熬粥,红豆比较不易烧烂,可以先煮红豆,红豆煮烂了,再放入糯米,红枣一起烧,也是一道补血的佳肴。
一招让你快速气血两旺:
导读一说起气血,一般人都觉得是很玄的东西。
中医认为,一个人健康的标准就是气血充足。人体的脏器就如同人一样,吃得饱了,干起活来才有劲。而血就是脏器的“饭”。
1、看眼睛
看眼睛实际上是看眼白的颜色,俗话说“人老珠黄”,其实指的就是眼白的颜色变得混浊、发黄,有血丝,这就表明你气血不足了。眼睛随时都能睁得大大的,说明气血充足;反之,眼袋很大、眼睛干涩、眼皮沉重,都代表气血不足。
2、看皮肤
皮肤白里透着粉红,有光泽、弹性、无皱纹、无斑代表气血充足。反之,皮肤粗糙,没光泽,发暗、发黄、发白、发青、发红、长斑都代表身体状况不佳、气血不足。
3、看头发
头发乌黑、浓密、柔顺代表气血充足,头发干枯、掉发、头发发黄、发白、开叉都是气血不足。
4、看耳朵
现在,人的身体素质越来越差。不信你去仔细看看,现在人的耳朵小,看上去越来越僵硬、而且形状上看上去已有些变形。就是孩子和年青人都很少能看到圆润、肥大、饱满的大耳朵了。而这些大耳朵在老人那里却很多见,这说明以前人的身体素质明显强于现代人。
小孩子看耳朵看形态,大人除了形态就主要看后天的情况了,主要看色泽、有无斑点、有无疼痛。如果呈淡淡的粉红色、有光泽、无斑点、无皱纹、饱满则代表气血充足。而暗淡、无光泽代表气血已经下降。如果耳朵萎缩、枯燥、有斑点、皱纹多,它代表了人的肾脏功能开始衰竭,你要注意了。
5、摸手的温度
如果手一年四季都是温暖的,代表人气血充足,如果手心偏热或者出汗或者手冰冷,都是气血不足。
6、看手指的指腹
无论孩子还是成人,如果手指指腹扁平、薄弱或指尖细细的,都代表气血不足,而手指指腹饱满,肉多有弹性,则说明气血充足。
7、看青筋
如果在成人的食指上看到青筋,说明小时候消化功能不好,而且这种状态已一直延续到了成年后。这类人体质弱,气血两亏。如果在小指上看到青筋,说明肾气不足。如果掌心下方接近腕横纹的地方纹路多、深,就代表小时候营养差,体质弱,气血不足。成年后,这类女性易患妇科疾病,男性则易患前列腺肥大、痛风等症。
8、看指甲上的半月形
正常情况下,半月形应该是除了小指都有。大拇指上,半月形应占指甲面积的1/4~1/5,其它食指、中指、无名指应不超过1/5。
如果手指上没有半月形或只有大拇指上有半月形的说明人体内寒气重、循环功能差、气血不足,以致血液到不了手指的末梢,如果半月形过多、过大,则易患甲亢、高血压等病。
9、看手指甲上的纵纹
只在成人手上出现,小孩不会有的。当成人手指甲上出现纵纹时,一定要提高警惕,这说明身体气血两亏、出现了透支,是肌体衰老的象征。
10、看牙龈
小孩子不明显,主要是成人。牙龈萎缩代表气血不足,只要发现牙齿的缝隙变大了,食物越来越容易塞在牙缝里,就要注意了,身体已在走下坡路,衰老正在加快。
11、看睡眠
成人如果像孩子一样入睡快、睡眠沉,呼吸均匀,一觉睡到自然醒,表示气血很足;而入睡困难,易惊易醒、夜尿多,呼吸深重或打呼噜的人都是血亏。
12、看运动
运动时如果出现胸闷、气短、疲劳难以恢复的状况,气血就不足,而那些运动后精力充沛、浑身轻松的人就很好。
最快的补血方法是什么?
补血的方法是食用高营养的各种汤以及用黑米、玉米、血糯米、大米做成的糊,再加进已加工成糊状的红枣、核桃、花生、莲子、桂圆、枸杞子等。所以病后初愈者、产后妇女、老人、孩子、身体虚弱的人,多喝各种直接消化吸收的糊,对养生及疾病的治疗特别好。
最好的补血食品是什么?
简单地说,只要吃到肚子里能消化吸收的食物,就是补血的,所以补血的前提是胃、肠道消化吸收的能力,就算吃的是粗茶淡饭,只要全部吸收,照样补血,而吃了高级的滋补品,胃、肠道不消化,依然什么用也没有。
寒凉的食物是不是都不能吃?
并不是所有的寒凉食物进入肚子里都会对身体产生负面影响,只要与人的体质、吃的季节相搭配,能起到中和、平衡的作用,就可以吃。比如夏天,人体大量出汗,而适量吃些大寒的西瓜,它能除燥热,又能补充人体因出汗多而丢失的水份、糖份,这时的西瓜对身体来讲就能起到协调、补血的作用,而天冷时吃西瓜,就易导致血亏。
寒、热食物要搭配着吃。
人见人爱的家庭补血方:
在日常的饮食中,还有很多的补血方,有兴趣的朋友,可以按下面介绍的方法去做,也可换换花样,让家人更爱吃。
红枣、桂圆、花生、红豆、红糖、白果、枸杞子都是人们常吃的补血、补肾的食品,将它们互相搭配,就成了很好的补血食疗方。红枣是补血最常用的食物,生吃效果最好。
红豆还可以在铁锅里炒黑后泡水喝,可以治疗胃寒,胃痛,再放入桂圆,就是补血、补气的茶了,特别适合教师、营业员等使用嗓子频率较高的人。如果再加上4~6粒的枸杞子,还能治疗便秘,但大便稀的人就不要加枸杞子了。
常喝红枣、桂圆、枸杞茶的女性朋友,皮肤白皙,美容效果不错。枸杞子不要放多,几粒即可,红枣和桂圆也就6~8粒就行了,每天早上上班后给自己泡一杯,不但补气血,还能明目,特别适合长期待在计算机前的工作狂们。
而没有在铁锅里炒硬、炒黑的红枣泡茶喝是没有用的,因为外皮包裹住了枣子,营养成分出不来,而经过炒制的红枣,经开水一泡,表皮都裂开了,里面的营养成分才会慢慢地渗出来。
红枣、花生、桂圆,再加上红糖,加水在锅里慢慢地炖,炖得烂烂的,经常吃,补血的效果很好。
红枣、红豆、放入糯米里一起熬粥,红豆比较不易烧烂,可以先煮红豆,红豆煮烂了,再放入糯米,红枣一起烧,也是一道补血的佳肴。
✋热门推荐