Souleigh ✨ Souleigh ✨
4年前
JS 实现单链表
要存储多个元素,数组(或列表)可能是最常用的数据结构。但这种数据结构有一个缺点:(在大多数语言中)数据的大小是固定的,从数组的起点或中间插入或移除项的成本很高。  链表存储有序的集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。  相对于传统的数组,链表的一个好处是
Stella981 Stella981
3年前
Linux的.a、.so和.o文件 windows下obj,lib,dll,exe的关系 动态库内存管理 动态链接库搜索顺序 符号解析和绑定 strlen函数的汇编实现分析
Linux的.a、.so和.o文件chlele0105的专栏CSDN博客https://blog.csdn.net/chlele0105/article/details/23691147在说明Linux的.a、.so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系https://zh.wikipedia.
Wesley13 Wesley13
3年前
CPU中的二进制数据(整数篇)
1.用二进制数表示计算机信息的原因计算机内部CPU和内存都是IC的一种,它们都有多个引脚。IC的所有引脚,只有直流电压0V或5V两个状态。也就是说,IC的一个引脚,只能表示两个状态。IC的这个特性,决定了计算机的信息数据只能用二进制数来处理。计算机处理信息的最小单位——位,就相当于二进制中的一位。对于用二进制数表示
Wesley13 Wesley13
3年前
Java序列化技术即将被废除!!!
我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。如果你还不熟悉Java序列化技术,请详细阅读《关于Jav
Stella981 Stella981
3年前
Fourinone四合一分布式计算框架整体介绍
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要
Stella981 Stella981
3年前
Google布隆过滤器与Redis布隆过滤器详解
一、什么是布隆过滤器?布隆过滤器可以用来判断一个元素是否在一个集合中。它的优势是只需要占用很小的内存空间以及有着高效的查询效率。对于布隆过滤器而言,它的本质是一个位数组:位数组就是数组的每个元素都只占用1bit,并且每个元素只能是0或者1布隆过滤器除了一个位数组,还有K个哈希函数。当一个元素加入布隆过滤器中的时候,会进行如下操作:
想天浏览器 想天浏览器
2年前
想天浏览器:如何从零开始设计一个高效的浏览器左侧栏?
绝大多数的互联网从业人士都无法避免长时间,高强度地使用浏览器产品。在使用这些浏览器产品的时候,我们往往会遇到这样的问题:1.当打开过多的浏览器标签的时候,过度拥挤的标签栏,无法区分网页。2.当关闭浏览器的时候,会清空全部的标签,从而形成内存式的使用习惯,恢复工作区作为一个简单而繁琐的动作,每天被低效执行。3.越来越多的saas应用做成了网页单页应用,是否能够
3A网络 3A网络
2年前
教你如何将二进制文件导入到数据库
教你如何将二进制文件导入到数据库1.1现网业务场景源数据推送二进制流解析二进制解析后的数据导入数据库为了模拟生产的业务场景,客户提供了一个二进制文件及二进制文件的解析程序,需要我们解析二进制文件后导入数据库。1.2测试方案由于客户给出的解析程序是单条解析,为了提升数据导入的性能,需要微批导入的方式,在内存中积攒一定量的数据后,再调用copy
美味蟹黄堡 美味蟹黄堡
2年前
VPS和共享主机的区别
乍一看,VPS可能看起来很像共享主机,其中几个站点共享一个服务器的资源。两者之间的主要区别在于虚拟化:由于它们是虚拟机,因此每个VPS都是一台完全属于自己的计算机,并且不共享计算能力或内存等资源。但是,共享主机确实共享这些资源,因此它几乎只是一台服务器,有许多不同的人同时在其上运行自己的站点。因此,当同一服务器上的网站在另一个VPS上运行时遇到问题
浅谈OpenStack(一)
OpenStack刚开始只有nova(计算)和swift(存储)两个核心组件,尤其是nova,几乎负责了云主机生命周期的所有操作,包括cpu、内存、磁盘、网络等,后来随着功能越来越多,项目越来越庞大,社区才把镜像管理(novaimage)服务、存储管理(novavolume)服务、网络管理(novanetwork)服务等独立出来,于是有了glance、cinder、neutron等服务。在OpenStack里有两个概念:组件和服务。我们把每个完成独立功能的项目称为一个组件,比如nova、cinder、glance、neutron。每个组件里会细分很多个服务,用来承担不同的职责,比如nova里会有novaapi服务,负责api请求的处理;novascheduler服务负责宿主机的调度;novacompute服务负责与虚拟化软件进行交互,来操作云主机。