内存类型

[Linux] RHEL MySQL部署文档

天涯浪子 提交于 2019-12-01 04:02:26
MySQL部署文档: Mysql 数据库使用 基础 1. 安装参数说明: ./configure--prefix=/web/mysql 指定安装目录 --without-debug 去除 debug 模式 --with-extra-charsets=gb2312 添加 gb2312 中文字符支持 --with-charsets= 默认中文字符支持 --enable-assembler 使用一些字符函数的汇编版本 --without-isam 去掉 isam 表类型支持 现在很少用了 isam 表是一种依赖平台的表 --without-innodb 去掉 innodb 表支持 innodb 是一种支持事务处理的表 , 适合企业级应用 --with-pthread 强制使用 pthread 库 (posix 线程库 ) --enable-thread-safe-client 以线程方式编译客户端 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static 以纯静态方式编译服务端和客户端 --with-tcp-port=3306 端口号 --with-mysqld-user=work 用户 --with-unix-socket-path 将 MYSQL_UNIX_PORT 环境变量设置为 Unix

SGI-STL简记(六)-序列容器(bit_vector)

人盡茶涼 提交于 2019-12-01 02:03:58
stl_bvector.h : bit_vector 重声明为vector<bool, alloc>即使用alloc作为内存分配器,其为非模板类,__BVECTOR也即vector<bool, _Alloc>为模板类,若使bit_vector重声明为__BVECTOR则也可为模板类; 相比vector,其可保持一个位一个元素而不是至少一个字节一个元素;此外基本的函数和vector相同,还有其他额外的提供的接口实现; bit_vector一般被认为是非模板类; _Bit_reference:位引用类,作为位迭代器类和bit_vector类中的引用类型; 数据成员,均为unsigned int类型或指针类型(后面为了便于分析,暂且定为4字节大小): _M_p:指向缓冲区中存储该位码值所在的地址; _M_mask:当前位掩码值(事实上目前一般情况下该值始终为仅含一个1其余均为0的二进制形式下的值),也即_M_p所指向的4字节位码中相应掩码值中为1的位置即为当前引用类表示的位值; 成员函数: 构造函数初始化位码值地址和掩码值; operator bool:重载bool转换,内部实现为将位码值和掩码值按照位取与的结果; operator=:重载赋值拷贝运算符,内部实现为为拷贝参数值为true,则调整位码值为当前位码值与掩码值按位或的结果,否则为当前位码值与掩码值取反后再与其求与的结果;

JVM 内存模型

安稳与你 提交于 2019-12-01 00:54:34
作为JAVA开发,必须要了解JVM,了解JVM 内存模型的相关知识是每个程序开发者必备的。 JVM 内存模型 JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java 虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。 如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie 方法,这个计数器值则为空(Undefined)。 此内存区域是唯一一个在Java 虚拟机规范中没有规定任何OutOfMemoryError情况的区域。 虚拟机栈 线程私有,它的生命周期与线程相同。虚拟机栈描述的是Java 方法执行的内存模型: 每个方法被执行的时候都会同时创建一个栈帧

MySql优化相关总结

£可爱£侵袭症+ 提交于 2019-12-01 00:02:07
MySQL架构 查询执行流程 查询执行的流程是怎样的: 连接 1.1客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求 1.2将请求转发到‘连接进/线程模块’ 1.3调用‘用户模块’来进行授权检查 1.4通过检查后,‘连接进/线程模块’从‘线程连接池’中取出空闲的被缓存的连接线程和客户端请求对接,如果失败则创建一个新的连接请求。 处理 2.1先查询缓存,检查Query语句是否完全匹配, 2.2查询缓存失败则转交给‘命令解析器’ 2.3再转交给对应的模块处理 2.4如果是SELECT查询还会经由‘查询优化器’做大量的优化,生成执行计划 2.5模块收到请求后,通过‘访问控制模块’检查所连接的用户是否有访问目标表和目标字段的权限 2.6有则调用‘表管理模块’,先是查看table cache中是否存在,有则直接对应的表和获取锁,否则重新打开表文件 2.8根据表的meta数据,获取表的存储引擎类型等信息,通过接口调用对应的存储引擎处理 2.9上述过程中产生数据变化的时候,若打开日志功能,则会记录到相应二进制日志文件中 结果 3.1Query请求完成后,将结果集返回给‘连接进/线程模块’ 3.2返回的也可以是相应的状态标识,如成功或失败等 3.3‘连接进/线程模块’进行后续的清理工作,并继续等待请求或断开与客户端的连接 什么是优化 合理安排资源、调整系统参数使MySQL运行更快

测试

こ雲淡風輕ζ 提交于 2019-11-30 21:09:10
1 可以吗 一 Python基础 1、入门 1.为什么学习 Python? 2.通过什么途径学习的 Python? 3 公司线上和开发环境使用的什么系统? 4 Python 和 Java、PHP、C、C#、C++等其他语言的对比? 1.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 C语言的优点:简洁紧凑、灵活方便;运算符丰富;数据类型丰富;表达方式灵活实用;允许直接访问物理地址,对硬件进行操作;生成目标代码质量高,程序执行效率高;可移植性好;表达力强; C语言的缺点:C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等

整理

牧云@^-^@ 提交于 2019-11-30 19:52:48
C++11 知识整理 对class的理解 答:首先,class 也是一种数据类型,只不过是可以由开发者自由定义的一种数据类型;可以用来封装成员变量和成员函数;支持抽象,继承,多态性;在定义数据类型的时候,private,public,也从一定程度上保证了数据的安全性 抽象性:含有纯虚函数的类被称为抽象类,用途是为派生类提供基类 多态性:对于不同对象接受相同信息时产生不同的动作。分为静态多态和动态多态,体现在两个方面,一是在编译的时候,函数重载是一个方面;二是在运行的时候,虚函数是一个方面 继承性:子类具有父类的各种属性和方法,而不必再次编写相同的代码 什么是类 答:一种将抽象转换成用于定义的类型的工具,将数据表示方法和操纵这些数据的方法组合一起整合成一个包 如何将私有成员变量取出 答:方法1:通过public中的函数,传出参数将私有成员变量取出。方法2:友元函数 *this 指针 答:经典回答,进入一个房间,能看见房间里的东西,但是整个房间看不到了,然后this指针就是时刻盯着这整个房间。this指针是类的一个自动生成,自动隐藏的私有成员。存在于类的非静态成员函数中,指向内调用函数所在的对象。全局仅有一个this指针,当一个对象被创建的时候,this指针就存放指向对象数据的首地址 类和对象的区别和联系 答:区别:(1).定义不同 ,类是现实世界或思维世界的实体在计算机的反映

一道 Java 方法传值面试题——Java方法传值的值传递概念和效果 + Integer 缓存机制 + 反射修改 private final 域

假装没事ソ 提交于 2019-11-30 18:26:46
原题代码如下: 1 public void test1() { 2 int a = 1, b = 2; 3 System.out.println("before: a=" + a + ", b=" + b); 4 swap1(a, b); 5 System.out.println("after: a=" + a + ", b=" + b); 6 } 7 8 private void swap1(int i1, int i2) { 9 int tmp = i1; 10 i1 = i2; 11 i2 = tmp; 12 } 13 14 public void test2() { 15 Integer a = 1, b = 2; 16 System.out.println("before: a=" + a + ", b=" + b); 17 swap2(a, b); 18 System.out.println("after: a=" + a + ", b=" + b); 19 } 20 21 22 public void test3() throws NoSuchFieldException, IllegalAccessException { 23 Integer a = 1, b = 2; 24 System.out.println("before: a=" + a + ", b="

大数据技术复习常见问题

爱⌒轻易说出口 提交于 2019-11-30 18:08:05
1. 使用mr,spark ,spark sql编写 word count 程序 (1) mr public class WordCount { public static class TokenizerMapper extends Mapper < Object , Text , Text , IntWritable >{ private final static IntWritable one = new IntWritable( 1 ); private Text word = new Text(); public void map (Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class IntSumReducer extends Reducer < Text , IntWritable , Text , IntWritable

JAVA基础

♀尐吖头ヾ 提交于 2019-11-30 16:10:32
语法部分 1.java的技术结构:JAVASE JAVAEE JAVAME 2.Java的跨平台:基于JVM---java语言是跨平台的,JVM不跨平台。 3. 入门程序: 类名和 java文件名不一定一致 : class文件名和类名对应。(java、javac两个指令) 4. 关键字: 53个---goto,const---2个保留字 5. 标识符:由字母、数字、 _、$组成,数字不能开头,不能使用关键字,见名知意。 6. 注释:单行 //、多行/* */、文档/** */,文档注释一般用来标识类和方法---注释的作用:解释说明程序、排错 7. 进制:开头标识: 2进制以0b开头,8进制以0开头,16进制以0x开头。 byte b = 00010000;---报错(这是一个八进制的) 01111111->177 8.变量:先声明后使用,先赋值后操作 9. 数据类型:基本数据类型( byte short int long float double char boolean)、引用数据类型(类、接口、数组) A.byte的取值范围:-128-127; B. 整数默认是 int类型,小数默认是double类型 C.float需要以F/f结尾,long需要有一个L/l结尾 D. 科学计数法: dobule d = 3.2e4;32000 double d = 0x8p3;64 10

pandas技巧:如何降低内存占用

拥有回忆 提交于 2019-11-30 07:00:46
pandas 是一个 Python 软件库,可用于数据操作和分析。数据科学博客 Dataquest.io 发布了一篇关于如何优化 pandas 内存占用的教程:仅需进行简单的数据类型转换,就能够将一个棒球比赛数据集的内存占用减少了近 90%,机器之心对本教程进行了编译介绍。 当使用 pandas 操作小规模数据(低于 100 MB)时,性能一般不是问题。而当面对更大规模的数据(100 MB 到数 GB)时,性能问题会让运行时间变得更漫长,而且会因为内存不足导致运行完全失败。 尽管 Spark 这样的工具可以处理大型数据集(100 GB 到数 TB),但要完全利用它们的能力,往往需要更加昂贵的硬件。而且和 pandas 不同,它们缺少丰富的用于高质量数据清理、探索和分析的功能集。对于中等规模的数据,我们最好能更充分地利用 pandas,而不是换成另一种工具。 在这篇文章中,我们将了解 pandas 的内存使用,以及如何只需通过为列选择合适的数据类型就能将 dataframe 的内存占用减少近 90%。 处理棒球比赛日志 我们将处理 130 年之久的美国职业棒球大联盟(MLB)比赛数据,这些数据来自 Retrosheet:http://www.retrosheet.org/gamelogs/index.html。 这些数据原来分成了 127 个不同的 CSV 文件,但我们已经使用