内存参数

【C语言】08-数组

 ̄綄美尐妖づ 提交于 2020-01-30 04:33:08
本文目录 地址 一、一维数组 二、二维数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 回到顶部 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int

C语言 08-数组

冷暖自知 提交于 2020-01-30 04:32:16
本文目录 地址 一、一维数组 二、二维数组   说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 地址   1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。   2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 一、一维数组 1.一维数组的定义 * 定义的形式为:类型 数组名[元素个数] int a[5]

Redis持久化方案

随声附和 提交于 2020-01-30 00:08:43
1 Redis 持久化方案 Redis 是一个 内存 数据库,为了保证数据的持久性,它提供了两种持久化方案 : l RDB 方式(默认) l AOF 方式 1.1 RDB 方式 1.1.1 介绍 l RDB 是 Redis 默认 采用的持久化方式。 l RDB 方式是通过 快照 ( snapshotting )完成的,当 符合一定条件 时 Redis 会自动将内存中的数据进行快照并持久化到硬盘。 l Redis 会在 指定的情况 下触发快照 1. 符合自定义配置的快照规则 2. 执行 save 或者 bgsave 命令 3. 执行 flushall 命令 4. 执行主从复制操作 l 在 redis.conf 中设置自定义快照规则 1. RDB 持久化条件 格式: save <seconds> <changes> 示例: save 900 1 : 表示 15 分钟( 900 秒钟)内 至少 1 个键被更改则进行快照。 save 300 10 : 表示 5 分钟( 300 秒)内至少 10 个键被更改则进行快照。 save 60 10000 :表示 1 分钟内至少 10000 个键被更改则进行快照。 可以配置多个条件(每行配置一个条件),每个条件之间是 “ 或 ” 的关系。 save 900 1 save 300 10 save 60 10000 2. 配置 dir 指定 rdb

linux服务器性能查看

谁说胖子不能爱 提交于 2020-01-29 09:00:45
1.1 cpu性能查看 1、查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l 2、查看每个物理cpu中的core个数: cat /proc/cpuinfo |grep "cpu cores"|wc -l 3、逻辑cpu的个数: cat /proc/cpuinfo |grep "processor"|wc -l 物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下) 1.2 内存查看 1、查看内存使用情况: #free -m total used free shared buffers cachedMem: 3949 2519 1430 0 189 1619-/+ buffers/cache: 710 3239Swap: 3576 0 3576total:内存总数 used:已经使用的内存数 free:空闲内存数 shared:多个进程共享的内存总额 - buffers/cache:(已用)的内存数,即used-buffers-cached + buffers/cache:(可用)的内存数,即free+buffers+cached Buffer Cache用于针对磁盘块的读写; Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间。

python学习总结(函数进阶)

删除回忆录丶 提交于 2020-01-29 05:34:13
-------------------程序运行原理------------------- 1、模块的内建__name__属性,主模块其值为__main__,导入模块其值为模块名 1、创建时间,py文件比pyc文件新,则从新生成pyc。 2、magic num,做运行前版本测试,版本不同重新生成pyc。 3、PyCodeObject对象,源代码中的字符串,常量值,字节码指令,原始代码行号的对应关系。 2、LEGB规则 1、Local :本地 当前所在命名空间(如函数,模块),函数的参数也属于命名空间内的变量。 2、Ecolsing function :外部嵌套函数的命名空间 外部嵌套函数的命名空间(闭包中常见)。 3、Global :全局 全局变量,函数定义所在模块的命名空间。 4、Builtins :内建模块命名空间 1、Python 在启动的时候会自动为我们载入很多内建的函数、类, 比如 dict,list,type,print,这些都位于 __builtins__ 模块中,可以使用 dir(__builtins__) 来查看。 2、在Python中,有一个内建模块,该模块中有一些常用函数;在Python启动后,且没有执行程序员所写的任何代码前,Python会首先加载该内建函数到内存。另外,该内建模块中的功能可以直接使用,不用在其前添加内建模块前缀,其原因是对函数、变量

C++知识点汇总文档

蓝咒 提交于 2020-01-29 03:14:26
C++知识点汇总文档 持续更新 朝花夕拾. 不写下来, 仿佛一切都没了见证. 编程来源于生活, 无非是对现实的抽象. 整理这份文档的时候我才发现, 自己对C++的了解无非是冰山一角 另, C++11真的 太恐怖了 , 新"特性"真的是"恐怖如斯" 另注: 本人才疏学浅, 难免有错漏之处, 还望不吝赐教 1.基本概念 内存管理 C++中的内存划分(内容来自 博客 ): 堆 由用户使用new delete关键字管理的内存区域 栈 栈中用来存放临时变量, 比如函数中的局部变量, 在代码块结束时会自动清除 自由存储区 由malloc等分配的内存块, 他和堆是十分相似的, 不过它是用free来结束自己的生命的 全局/静态存储区 全局变量和静态变量被分配到同一块内存中 常量存储区 比较特殊的存储区, 他们里面存放的是常量(不太了解, 有空扫下盲) new 关键字 用来在内存(堆)中开辟一块空间, 用户获得一个指向内存中目标位置的指针 用法 参考示例 //申请一块指向单个int对象的内存, 并将值初始化为"5" int *ptr_0 = new int(5); //申请一块指向5个连续int类型对象的内存 //使用C++11统一的花括号初始化, 直观地对内存进行初始化 int * ptr_1 = new int[5]{1,2,3,4,5}; delete 关键字 删除 使用new申请的内存 用法

结对编程

一个人想着一个人 提交于 2020-01-28 13:14:19
简介 对伙伴的代码进行审查 合作伙伴: 尉安瑞 伙伴 Coding 参考文章: 谷歌是如何做代码审查的 C++代码审---参考林锐高质量C/C ++ 整天说Code Review重要,你知道应该关注哪些关键点吗? - CSDN博客 一.代码审查表分析 功能模块名称 无环图应用 审查人 Stone 审查日期 2018.4.4  代码名称 DYJ  代码作者 尉安瑞  文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 是    头文件和定义文件的目录结构是否合理? 是    版权和版本声明是否完整? 是  重要 头文件是否使用了 ifndef/define/endif 预处理块? 无  无  头文件中是否只存放“声明”而不存放“定义” 无        程序的版式 重要性 审查项 结论   空行是否得体? 否    代码行内的空格是否得体? 否    长行拆分是否得体? 是    “{” 和 “}” 是否各占一行并且对齐于同一列? 否  重要 一行代码是否只做一件事?如只定义一个变量,只写一条语句。 否  重要 If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 否  重要 在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?注释是否清晰并且必要? 否  重要 注释是否有错误或者可能导致误解? 无  重要 类结构的public,

数据库MySQL-InnoDB参数配置

佐手、 提交于 2020-01-28 03:03:23
3、配置InnoDB的几个变量 1、innodb_buffer_pool_size 对于InnoDB表来说, innodb_buffer_pool_size 的作用就相当于key_buffer_size对于MyISAM表的作用一样。InnoDB使用该参数指定大小的内存来缓冲数据和索引。对于单独的MySQL数据库服务器,最大可以把该值设置成物理内存的80%。 根据MySQL手册,对于2G内存的机器,推荐值是1G(50%)。 show status like 'innodb%'; 2、innodb_flush_log_at_trx_commit 主要控制了innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,取值分别为0、1、2三个。0,表示当事务提交时,不做日志写入操作,而是每秒钟将log buffer中的数据写入日志文件并flush磁盘一次;1,则在每秒钟或是每次事物的提交都会引起日志文件写入、flush磁盘的操作,确保了事务的ACID;设置为2,每次事务提交引起写入日志文件的动作,但每秒钟完成一次flush磁盘操作。 实际测试发现,该值对插入数据的速度影响非常大,设置为2时插入10000条记录只需要2秒,设置为0时只需要1秒,而设置为1时则需要229秒。因此,MySQL手册也建议尽量将插入操作合并成一个事务,这样可以大幅提高速度。 根据MySQL手册

linux c 内存共享

折月煮酒 提交于 2020-01-27 13:04:57
一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc()分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。 特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取。所以我们通常需要用其他的机制来同步对共享内存的访问 二、共享内存的使得 与信号量一样,在Linux中也提供了一组函数接口用于使用共享内存,而且使用共享共存的接口还与信号量的非常相似,而且比使用信号量的接口来得简单。它们声明在头文件 sys/shm.h 中。 1、shmget()函数 该函数用来创建共享内存,它的原型为: int shmget(key_t key, size_t size, int shmflg); 第一个参数,与信号量的semget函数一样,程序需要提供一个参数key(非0整数),它有效地为共享内存段命名,shmget()函数成功时返回一个与key相关的共享内存标识符(非负整数)

关于 /proc/sys/net/ipv4/下 文件的详细解释

瘦欲@ 提交于 2020-01-27 01:46:17
关于 /proc/sys/net/ipv4/下 文件的详细解释: 1) /proc/sys/net/ipv4/ip_forward 该文件表示是否打开IP转发。 0,禁止 1,转发 基本用途:如VPN、路由产品的利用; 出于安全考虑,Linux系统 默认是禁止数据包转发 的。所谓 转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包 。这通常就是路由器所要实现的功能。 配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能 [root@xuegod70 ~]# less /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1。 [root@xuegod70 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward 修改文件内容, 重启网络服务或主机后效果不再 。若要其自动执行,可将命令echo "1" > /proc/sys/net/ipv4/ip_forward 写入脚本/etc/rc.d/rc.local 或者 在/etc/sysconfig/network脚本中添加 FORWARD_IPV4="YES" 2) /proc/sys/net/ipv4/ip_default_ttl