2017-04-06 blademainer
众所周知,当我们执行没有任何调优参数(如java -jar myapplication.jar)的 Java 应用程序时,JVM 会自动调整几个参数,以便在执行环境中具有最佳性能。但是许多开发者发现,如果让 JVM ergonomics (即JVM人体工程学,用于自动选择和行为调整)对垃圾收集器、堆大小和运行编译器使用默认设置值,运行在Linux容器(docker,rkt,runC,lxcfs 等)中的 Java 进程会与我们的预期表现严重不符。 本篇文章采用简单的方法来向开发人员展示在 Linux 容器中打包 Java 应用程序时应该知道什么。 more 存在的问题 我们往往把容器当虚拟机,让它定义一些虚拟 CPU 和虚拟内 继续阅读 »
2018-01-30 Vaniot
C++
一、常用的STL包含的文件 1 迭代器 #include 2 输入输出流 #include 标准输入输出流 #include 文件输入输出流 #include 字符串输入输出流 3 字符串 #include 4 函数对象 #include 3 通用容器 #include 4 向量容器 #include 双端队列 #include 链表容器 #include 队列 ,优先队列 #include 堆栈 #include 集合 继续阅读 »
2015-04-17 W.Y.
Flexbox 布局是 CSS3 中一种新的布局模型,被称为弹性盒模型。该模型是为了改进容器中内容的对齐、方向和排序方式,即使是动态,甚至是未知大小的容器。弹性盒模型的主要特点是,可以在不同屏幕尺寸下以最佳的方式,修改其子项的高度或宽度来填充容器的可用空间。 许多设计师和开发人员认为这种布局使用起来更加简单,弹性盒模型的使元素的定位更加简单,从而某些复杂的布局可以用更少的代码来实现,进而简化了开发过程。Flexbox 布局算法是基于方向的,这与基于垂直和水平的 block 和 inline 布局不同。弹性盒模型可用于小应用或组建的布局,然而对于大型应用应该使用 Grid 布局。 本文将用可视化的方式介绍 Flex 如何影响我们的 继续阅读 »
2017-11-29 Lingxian Kong
最近在 Qinling 项目中实现对 function 运行时做资源限制,主要是 cpu、内存和磁盘,后续还会考虑 package 大小、文件句柄、系统调用等资源限制。限制资源使用的原因很简单,因为底层是容器实现,function 都是跑在容器里,如果不做资源限制,任由用户自己在 function 里分配资源,那么不同用户的函数势必会相互影响,更严重的情况是恶意用户会利用一些手段突破容器的限制,威胁 hypervisor,进而威胁整个云环境。 继续阅读 »
2016-02-03 ruki
Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内。可以用于网络爬虫的url重复过滤、垃圾邮件的过滤等等。 它相比hash容器的一个优势就是,不需要存储元素的实际数据到容器中去来一个个的比较是否存在。 只需要对应的位段来标记是否存在就行了,所以想当节省内存,特别适合海量的数据处理。并且由于省去了存储元素和比较操作,所以性能也比基于hash容器的高了很多。 但是由于bloom filter没有去比较元素,只通过多个hash来判断唯一性,所以存在一定的hash冲突导致误判。误判率的大小由hash函数的个数、hash函数优劣、以及存储的位空间大小共同决定。 继续阅读 »
2016-08-08 ruki
TBOX中提供了各种列表操作: list: 元素在内部维护的双向链表 list_entry: 元素在外部维护的双向链表 single_list: 元素在内部维护的单向链表 single_list_entry: 元素在外部维护的单向链表 由于双链和单链的接口使用类似,这里主要就讲解双链的具体使用。 那什么是内部维护和外部维护呢? 简单地说: 外部维护:就是链表容器本身不存储元素,不开辟内存空间,仅仅是一个节点头,这样比较节省内存,更加灵活。(尤其是在多个链表间元素迁移的时候,或者多个链表需要统一内存池维护的时候)。 内部维护:就是链表容器本身回去开辟一块空间,去单独存储元素内 继续阅读 »
2018-02-07 Lingxian Kong
更新历史: 2018.02.07 初稿完成 2018.03.12 更新对 kuryr 现状的理解 前言 突然关注 Kuryr 是因为我正好在研究 k8s 集群如何跟 openstack 环境通信,我的 qinling 项目也有容器跟虚拟机的通信需求。k8s 现在是热门不假,但毕竟我们还在做 openstack 的生意,自然就会碰到虚拟机和容器的混合部署。直接在 openstack 集群部署 k8s 不现实,那样会对资源管理和运维带来很大不便。所以最直观的部署方式就是 k8s 和 openstack 是相互独立的集群,各自管理各自的资源,当然,更高级一点就是 k8s 跑在 openstack 的 vm 里,彼此是上下层的关系,利用 继续阅读 »
2016-05-07 YongHao Hu
C++
在C++03中, 标准容器提供了begin与end函数 vector v; int a[100]; sort(v.begin(), v.end()); sort(a, a+sizeof(a)/sizeof(a[0])); 为了统一数组跟容器的语法, C++11提供了begin()函数 继续阅读 »
2018-04-02 Mystery0 M
白送域名 dylloveyyl.vip 白送域名dylloveyyl.vip,国际域名,2019年03月27过期,免备案(解析到国内主机另说) 2018年04月09日更新 终于,有人告诉了我,猫死了,我按奈不住好奇,打开了盒子,果然是猫死了。 薛定谔的猫 把一只猫、一个装有氰化氢气体的玻璃烧瓶和放射性物质放进封闭的盒子里。当盒子内的监控器侦测到衰变粒子时,就会打破烧瓶,杀死这只猫。 实验者甚至可以设置出相当荒谬的案例来。 把一只猫关在一个封闭的铁容器里面,并且装置以下仪器(注意必须确保这仪器不被容器中的猫直接干扰):在一台盖革计数器内置入极少量放射性物质,在一小时内,这个放射性物质至少有一个原子衰变的概率为 继续阅读 »
2016-09-06 JustWe
ArrayList 和 LinkedList 是在开发过程中 常用的数据结构 分别代表了数组和链表,其实本身的实现都非常简单,所以Source Code Read 就先从这两个开始。 ArrayList ArrayList 从名字上就可以看出这个容器的本质,是用一个数组反复的进行自增实现的,ArrayList几乎是最经常被使用的List的实现了,平时可以使用线性数据结构的时候,通常都会选择ArrayList。但是容器的选取也要考虑到实现的方式和你需要的应用。比如说数组长于索引,弱于扩容和删除,但是链表长于扩容和删除,但是寻找某个具体节点的时候,没办法靠基址寻址来实现,而是要用指针不断的 继续阅读 »