内存参数

字符串、字符和字节

匿名 (未验证) 提交于 2019-12-03 00:05:01
C语言中没有显示的字符串数据类型,字符串以字符串常量或者字符数组的形式出现,字符串常量适用于那些程序不会对它们进行修改的字符串。所有其它字符串都必须存储于字符数组或动态分配的内存中。 字符串 是一串零个或多个字符,并且以一个位模式为全0的NULL字节结尾。 字符串所包含的的字符内部不能出现NULL字节。 NULL字节是字符串的终结符,但它并不是字符串的一部分,所以字符串的长度并不包含NULL字节。 字符串函数的声明都在 string.h 头文件中。 字符串的长度就是它所包含的字符个数,通常使用函数 strlen 来计算字符串的长度。 sizet_t strlen ( char const * string ); size_t 定义在 stddef.h 中,它是一个无符号整数类型。 在表达式中使用无符号数可能导致不必要的结果,如下: if ( strlen ( x ) >= strlen ( y ))... if ( strlen ( x ) - strlen ( y ) >= 0 )... 第二条语句的结果永远为真,因为strlen(x)、strlen(y)的返回值都是无符号数,所以>=左边是无符号数,无符号数不可能小于零。 最常用的字符串函数都是不受限制的,就是说它们只是通过寻找字符串参数结尾的NULL来判断它的长度。在使用这些函数时,必须要 保证结果字符串不会溢出内存。

Hadoop YARN参数介绍(四)[推荐]

匿名 (未验证) 提交于 2019-12-02 23:56:01
Container Container就是一个yarn的java进程,在Mapreduce中的AM,MapTask,ReduceTask都作为Container在Yarn的框架上执行,你可以在RM的网页上[8088端口]看到Container的状态。 基础 Yarn的ResourceManger(简称RM)通过逻辑上的队列分配内存,CPU等资源给application,默认情况下RM允许最大AM申请Container资源为8192MB("yarn.scheduler.maximum-allocation-mb"),默认情况下的最小分配资源为1024M("yarn.scheduler.minimum-allocation-mb"),AM只能以增量("yarn.scheduler.minimum-allocation-mb")和不会超过("yarn.scheduler.maximum-allocation-mb")的值去向RM申请资源,AM负责将("mapreduce.map.memory.mb")和("mapreduce.reduce.memory.mb")的值规整到能被("yarn.scheduler.minimum-allocation-mb")整除,RM会拒绝申请内存超过8192MB和不能被1024MB整除的资源请求[内存增量]。 1 yarn-site.xml设置

进程间通信――共享内存(Shared Memory)

匿名 (未验证) 提交于 2019-12-02 23:42:01
原文:https://blog.csdn.net/ypt523/article/details/79958188 共享内存是System V版本的最后一个进程间通信方式。共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。 特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量。 下面就 Shared Memory 的IPC作以阐述与分析。 共享内存的通信原理 在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即共享内存。 共享内存的通信原理示意图: 对于上图我的理解是:当两个进程通过页表将虚拟地址映射到物理地址时

Python入门 - 2(真0基础)

匿名 (未验证) 提交于 2019-12-02 22:56:40
一 前言 上一章说了那么多,不知道大家是否有跃跃欲试的冲动。说实话,编程就像英语一样,只是一门语言,如果不用出来,能力会衰退。就像荒岛没人对话,时间长了很可能就不会说话了。如果不能自己写出来,永远就是别人的东西。这就是为什么很多人看了网络上那么多视频都学不会的原因。是的,可能你也正在看,甚至跟着视频将代码敲了下来,但是这些都是别人的。试着问自己一下,关了视频再写一遍,能做到吗?大概率是做不到的。。。怎么办?多写?写到吐?NO!!! base on project的学习计划才是有意义的。盲目多写,或者盲目写重复的内容只能让你记住了一部分的写法,思路不是你的。找一个目标,你喜欢的方向,往那个方向去研究,找那个方向的project去做。举个例子,我喜欢炒股炒外汇,那就去看一些关于量化交易系统的书或者文章,试着写一个自动买卖的小系统。为什么要这样做?因为持久的学习需要满足感,需要自信心。当自己写的程序能跑起来时,那种快感是难以言喻的。当然,无论选择哪个方向,基础还是必须打好的,没有这些基础,根本无法支撑你走得更远,更无法达到你的目标,所以,加油!坚持! 二 三元运算(装13用!!!~~~) 上一章的流程控制,是不是一个if...else...就得分好几行来写,难道就不能有一行写完的表达方式?必须有啊,写出来还特别有逼格。别人几百行实现的功能,几十行就实现了,是不是短小精悍? # 正常写法

python 装饰器

ε祈祈猫儿з 提交于 2019-12-02 22:51:57
1. 装饰器 装饰器其实是一个函数,作用是装饰其他函数装饰器的特点:1. 不改变被装饰的函数的源代码的情况下添加函数的功能 2. 不改变被装饰的函数的调用方式装饰器的组成方式:高阶函数+嵌套函数 1.1 高阶函数 高阶函数,以一个函数名作为参数,传递给另一个函数,这个函数就是高阶函数。 print(abs(-10)) # abs,内置函数,返回一个数的绝对值 def test(num,func): # 高阶函数,以一个函数名作为参数,传递给另一个函数 absNum = func(num) # 调用函数 print(absNum) test(-2,abs) # 注意,这里写的是abs,是函数名,没有加() map和lambda函数 map函数是一个内置的函数,它也是一个高阶函数,配合lambda(匿名函数),可以实现很多功能 lambda函数 lambda是匿名函数,没有函数名,最多支持三元运算,是一种简单的函数 三元运算: a,b,c = 1,2,3 d = 5 if a>b else c # 如果条件成立,d=5,否则就 =c lambda函数,以:分开,:左边写参数(可以多个,以‘,’分割),右边写函数体 a = lambda n:n*2 if n<10 else n print(a(6)) b = lambda x,y:x+y print(b(1,1)) ''' 上面的b

python基础面试题(全网最全!)

匿名 (未验证) 提交于 2019-12-02 22:51:30
Ŀ¼ 1、为什么学习Python? 1、为什么学习Python? 人生苦短....哈哈,自己想吧!!! emmm。。。来真的 python语言的简洁、优美! 官网、网上视频、学习网站 1、python代码,简介,明确,优雅,简单易懂 2、开发效率高 3、可扩展性强 解释型:在执行程序时,计算机才一条一条的将代码解释成机器语言给计算机来执行 编译型:是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样计算机运行该程序时可以直接以机器语言来运行此程序,运行速度很快。 Cpython,IPython,Jpython,pypy,Ironpython Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器: CPython:当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解 释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python, 就是启动CPython解释器,CPython是使用最广的Python解释器。 IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方 式上有所增强

[原创]Sharding-Sphere之Proxy初探

匿名 (未验证) 提交于 2019-12-02 21:59:42
大家好,拓海( https://github.com/tuohai666 )今天为大家分享Sharding-Sphere推出的重磅产品:Sharding-Proxy!在之前闪亮登场的Sharding-Sphere 3.0.0.M1中,首次发布了Sharding-Proxy,这个新产品到底表现如何呢?这次希望通过几个优化实践,让大家管中窥豹,从几个细节的点能够想象出Sharding-Proxy的全貌。更详细的MySQL协议、IO模型、Netty等议题,以后有机会再和大家专题分享。 Sharding-Proxy简介 Sharding-Proxy概览 Sharding-Proxy是Sharding-Sphere的第二个产品。它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。 对应用程序完全透明,可直接当做MySQL使用。 适用于任何兼容MySQL协议的客户端。 与其他两个产品(Sharding-JDBC、Sharding-Sidecar)对比: Sharding-JDBC Sharding-Proxy Sharding-Sidecar 数据库 任意 MySQL

开源技术分享:Linux 内核参数 swappiness细解

匿名 (未验证) 提交于 2019-12-02 21:59:42
本篇文章主要是就swappiness的一个源码上的解析(基于kernel版本 v4.14-13151-g5a787756b809),仅为个人见解,有不足欢迎相互交流。 关于Swap和swappiness Swap(交换分区)是操作系统就内存不足的一个缓解。当内存紧张时候,会适当的根据一些配置值和当前的统计值进行一次判断,会把一些anon内存(分配出去的内存)交换到Swap分区中。 Swappiness是系统的一个参数,可以调节swap的使用优先级。Linux文档描述如下: swappiness This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase aggressiveness, lower values decrease the amount of swap. A value of 0 instructs the kernel not to initiate swap until the amount of free and file-backed pages is less than the high water mark in a zone. The default value is 60. 翻译过来就是

常用的Linux命令

匿名 (未验证) 提交于 2019-12-02 21:56:30
linux命令学习1 linux命令学习2 history history命令就是历史记录. 它显示了在终端中所执行过的所有命令的历史. 参考链接: 1. 对Linux新手非常有用的 20个命令 grep 管道, 过滤, 作为linux中最为常用的三大文本(awk, sed, grep)处理工具之一, grep命令的常用格式为: grep [选项] "模式" [文件] , grep家族总共有三个: grep , egrep , fgrep , 一般常用grep. 扩展选项如下:  -E : 开启扩展Extend的正则表达式. -i : 忽略大小写ignore case. -n : 显示行号 -w : 被匹配的文本只能是单词, 而不能是单词中的某一部分, 如文本中有liker, 而我搜寻的只是like, 就可以使用-w选项来避免匹配liker --color :将匹配到的内容以颜色高亮显示. 参考链接: 1. linux中grep命令的用法 awk 1. awkѧϰ sed 1. sedѧϰ xxx --help(man xxx) xxx --help, 是对xxx命令的常用选项和用法格式的一个介绍, man xxx也是介绍, man的内容比较复杂是详细介绍, xxx --help比较简洁, 简单介绍 pwd 当前路径(dirs) l(ls) 显示给出路径之中的文档列表 Usage:

Java调优经验谈

匿名 (未验证) 提交于 2019-12-02 21:53:52
对于调优这个事情来说,一般就是三个过程: 性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统、应用的监控工具来发现问题。 性能分析:问题已经发生,但是你并不知道问题到底出在哪里。此时就需要使用工具、经验对系统、应用进行瓶颈分析,以求定位到问题原因。 性能调优:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。 Java调优也不外乎这三步。 此外,本文所讲的性能分析、调优等是抛开以下因素的: 系统底层环境:硬件、操作系统等 数据结构和算法的使用 外部系统如数据库、缓存的使用 调优准备 调优是需要做好准备工作的,毕竟每一个应用的业务目标都不尽相同,性能瓶颈也不会总在同一个点上。在业务应用层面,我们需要: 需要了解系统的总体架构,明确压力方向。比如系统的哪一个接口、模块是使用率最高的,面临高并发的挑战。 需要构建测试环境来测试应用的性能,使用ab、loadrunner、jmeter都可以。 对关键业务数据量进行分析,这里主要指的是对一些数据的量化分析,如数据库一天的数据量有多少;缓存的数据量有多大等 了解系统的响应速度、吞吐量、TPS、QPS等指标需求,比如秒杀系统对响应速度和QPS的要求是非常高的。 了解系统相关软件的版本、模式和参数等,有时候限于应用依赖服务的版本、模式等,性能也会受到一定的影响。 此外