自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(228)
  • 收藏
  • 关注

翻译 为啥芯片那么难搞?终于有人讲透了!

你知道一个芯片是怎样设计出来的么?你又知道设计出来的芯片是怎么生产出来的么?看完这篇文章你就有大概的了解。①复杂繁琐的芯片设计流程芯片制造的过程就如同用乐高盖房子一样,先有晶圆作为地基,再层层往上叠的芯片制造流程后,就可产出必要的 IC 芯片(这些会在后面介绍)。然而,没有设计图,拥有再强制造能力都没有用,因此,建筑师的角色相当重要。但是 IC 设计中的建筑师究竟是谁呢?本文接下来要针对 IC 设...

2018-04-19 22:27:45 1420

翻译 CPU架构及指令集之研究

第一部分:x86与i386、i486、i586、i686x86x86,或80×86是Intel首先开发制造的一种微处理器体系结构的泛称,包括8086、80186、80286、80386以及80486等。 因此其架构被称为“x86”。由于数字并不能作为注册商标,现在Intel把x86-32称为IA-32,即Intel Architecture, 32-bit。x86架构于19

2017-06-03 00:28:41 1524

翻译 28个常见的“蓝屏”故障代码的排查信息

错误名称:0x0000001E:KMODE_EXCEPTION_NOT_HANDLED故障分析:0x0000001E 错误表示Windows检测到一个非法的或未知的进程指令。这个错误一般是因为内存发生故障引起的,或者与0x0000000A错误相似,表示在内核模式中存在以过高的进程内部请求级别(IRQL)访问其没有权限访问的内存地址。 如果遇到0x0000001E错误,建议首先检查一下软件及硬件兼容性,看看最近有没有安装过新的应用软件、硬件设备或驱动程序。如果有的话,请将最近安装过的软件及硬件逐一卸载,看看

2017-05-28 00:21:23 4801

翻译 固态硬盘寿命测试一年半 寿命指数超乎想象 连写2500TB终于全挂

固态硬盘可靠性测试:写入22TB数据之后……SSD固态硬盘相比传统HDD机械硬盘的优点是性能强、体积小、无噪音,但是特殊的工作原理也让它的使用次数有限,而且这个次数还会随着制程工艺的升级而降低,编程/擦写循环次数从之前的5000+降低到3000次甚至1000次。SSD使用寿命是个老生常谈的话题了,厂商一次次强调随着SSD容量的增加和主控技术的进步,SSD有限的写入次数对使用

2017-05-23 01:23:42 128769 9

翻译 正则表达式

正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于:检查文本中是否含有指定的特征词找出文中匹配特征词的位置从文本中提取信息,比如:字符串的子串修改文本与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式。在这样的语境下,“文本”也就是一个字符串,可以执行的操作都是类似的。一些编程语言(比如Perl,JavaScript)会检查正则表达

2017-05-06 23:46:34 726

翻译 全景拼接

图像和视频缝合 在全景图生成、360°全景相机以及VR全景领域有非常多的应用,常用的图像缝合工具有Microsoft的ICE、PTGui、开源软件Hugin等,基于视频的拼接可以参考VideoStitch、StitcHD (github.com/lukeyeager/StitcHD)以及stitching_with_cuda。        图像缝合的算法步骤可以描述为:S

2017-04-27 12:30:16 5475 1

翻译 Hessian矩阵与牛顿法

牛顿法 主要有两方面的应用:1. 求方程的根;2. 求解最优化方法;一. 为什么要用牛顿法求方程的根?       问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解为 牛顿法是一种迭代求解方法(Newton童鞋定义的方法)。       假设 f(x) = 0 为待求解方程,利用传统方法求解,牛顿法求解方程的公式:f

2017-04-27 12:25:54 4466

翻译 排序算法总结

前言  查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这

2017-04-11 10:24:46 371

翻译 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误错误:与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)解决方案:一、首先确保

2017-03-13 16:21:05 9955

翻译 如何选一块称心如意的显卡

显卡那么多 到底怎么选  如果说一台电脑里最重要的硬件是什么?相信绝大多说的人都会说是显卡。在这个CPU性能严重过剩的年代,一颗i7 2600K照样可以再战三年,可你要是拿一块同时代的HD 6970的显卡,现在也就能玩玩一般游戏,顶级大作根本玩不了,HD 6970都不敌最新的R7 360,让它全特效跑个古墓9岂不是强人所难。  所以显卡这类硬件,如果是需求不高还可以

2017-02-20 15:51:29 1202

翻译 Intel系列CPU架构的发展史

Intel系列CPU架构的发展史CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。 (一)、4004时代     1971年,当时还处在起步阶段的Intel公司推出了世界上第一颗微处理器4004。是第一个用于计算器的4位微处理

2017-02-20 15:48:26 13296

翻译 怎么看cpu的好坏 图文告诉你电脑cpu怎么看

骁龙S1/2/3/4骁龙200骁龙400骁龙600骁龙800 三星联发科华为苹果IntelNVIDIA德州仪器        A10           A9X

2017-02-20 15:19:49 2566

翻译 Ceilometer Distributed Alarm

Ceilometer Alarm是H版新添加的功能,监控报警是云平台不可缺少的部分,Ceilometer已经实现了比较完善的监控体系,报警怎么能缺少呢?用过AWS CloudWatch Alarm的人应该不会对Ceilometer的Alarm感到陌生,Ceilometer实现的Alarm和CloudWatch的Alarm很像,概念基本上都一样,Alarm的逻辑也基本上一样,可以说是一个开源版的Cl

2017-01-19 17:33:34 372

翻译 计量模块 Ceilometer 中的数据收集机制

本文将阐述 Ceilometer 中的数据收集机制。Ceilometer 使用三种机制来收集数据:Notifications:Ceilometer 接收 OpenStack 其它服务发出的 notification messagePolling:直接从 Hypervisor 或者 使用 SNMP 从host machine,或者使用 OpenStack 其它服务的 API 来获取数据。RE

2017-01-19 15:07:37 947

翻译 计量模块 Ceilometer 介绍及优化

0. 背景0.1 为什么要有 Ceilometer?通常云,特别是公有云在计费方面有三个层次:计量 (Metering): 收集资源的使用数据,其数据信息主要包括:使用对象(what), 使用者(who), 使用时间(when)和 用量(how much)。计费 (Rating):将资源使用数据按照商务规则转化为可计费项目并计算费用结

2017-01-19 14:39:08 1240

翻译 Horizon 源码阅读(四)—— 调用Novaclient流程

一、写在前面这篇文章主要介绍一下OpenStack(Kilo)关于horizon 调用NovaClient的一个分析。        如果转载,请保留作者信息。        邮箱地址:[email protected]原文地址:http://blog.csdn.net/u011521019/article/details/48324739

2017-01-18 17:40:43 873

翻译 Horizon 源码阅读(三)—— Horizon 用户登录流程

一、写在前面这篇文章主要介绍一下OpenStack Horizon — juno项目用户登录流程,Horizon对于请求的处理其实就是django对请求的处理,我在这里将通过对django请求处理机制以及horizon用户登录流程代码的解析,逐步开始horizon代码阅读之旅。由于能力和时间有限,错误之处在所难免,欢迎指正!如果转载,请保留作者信息。邮箱

2017-01-18 17:38:49 1468

翻译 Horizon 源码阅读(二)—— Horizon 模块注册机制

一、写在前面这篇文章主要介绍一下OpenStack Horizon — juno项目模块注册机制,本文将通过对Horizon源码解析了解各个模块注册加载机制。全文穿插了Horizon组建的代码块以及个人理解注释,由于能力和时间有限,错误之处在所难免,欢迎指正!       如果转载,请保留作者信息。       邮箱地址:[email protected]

2017-01-18 17:36:18 791

翻译 Horizon 源码阅读(一)—— Horizon 整体介绍

一、写在前面       这篇文章主要介绍一下OpenStack Horizon — juno项目的整体情况,关于这方面的内容网上已经有很多相关的介绍,我在这里只作为一个知识的搬运工,把一些分散的内容加上个人的理解形成一篇介绍性博文,由于能力和时间有限,错误之处在所难免,欢迎指正!如果转载,请保留作者信息。邮箱地址:[email protected]

2017-01-18 17:33:42 670

翻译 Cinder 组件详解

从本节开始我们学习 OpenStack 的 Block Storage Service,Cinder理解 Block Storage操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据库)通过 NFS、CIFS 等 协议,mount 远程的文件

2017-01-17 16:16:58 8772 1

翻译 Openstack Swift 原理、架构与 API 介绍

Openstack Swift 开源云存储技术解析OpenStack Swift 开源项目提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。本文将深入介绍 Swift 的基本设计原理、对称式的系统架构和 RESTful API。OpenStack Swift 原理、架构与 API 介绍回页首背景

2017-01-16 16:44:38 1183

翻译 OpenStack-Nova组件理解

Nova是OpenStack云中的计算组织控制器。支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。但是,Nova自身并没有提供任何虚拟化能力,相反它使用libvirt API来与被支持的Hypervisors交互。Nova 通过一个与Amazon Web Services(AWS)

2017-01-13 15:45:07 9855 1

翻译 在Ubuntu14.04上OpenStack Juno安装部署

0 安装方式 0.1 安装方式 安装方式说明目标备注单结点一台服务器运行所有的nova-xxx组件,同时也驱动虚拟实例。这种配置只为尝试Nova,或者为了开发目的进行安装。 1控制节点+N个计算节点一个控制结点运

2017-01-06 15:20:00 4227

翻译 OpenStack Keystone安装部署流程

1. 简介  本文将详细描述Keystone的安装部署流程,并给出一些简单的使用实例。  Keystone是Openstack框架中的一个重要组成部分,负责身份认证、服务管理、服务规则和服务令牌的功能, 它实现了Openstack的Identity API。Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过Keystone来注册其服务,任何服

2017-01-06 15:13:50 1055

翻译 neutron的基本原理

neutron是OpenStack的一个重要模块,也是比较难以理解和debug的模块之一。我这里安装如图安装了经典的三个节点的Havana的Openstack 图1分三个网络:External Network/API Network,这个网络是连接外网的,无论是用户调用Openstack的API,还是创建出来的虚拟机要访问外网,或者外网要ssh到虚拟机,都需

2016-12-23 14:17:38 424

翻译 OpenStack Keystone安装部署流程

1. 简介  本文将详细描述Keystone的安装部署流程,并给出一些简单的使用实例。  Keystone是Openstack框架中的一个重要组成部分,负责身份认证、服务管理、服务规则和服务令牌的功能, 它实现了Openstack的Identity API。Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过Keystone来注册其服务,任何服

2016-12-16 17:27:06 2845

翻译 ART运行时Foreground GC和Background GC切换过程分析

通过前面一系列文章的学习,我们知道了ART运行时既支持Mark-Sweep GC,又支持Compacting GC。其中,Mark-Sweep GC执行效率更高,但是存在内存碎片问题;而Compacting GC执行效率较低,但是不存在内存碎片问题。ART运行时通过引入Foreground GC和Background GC的概念来对这两种GC进行扬长避短。本文就详细分析它们的执行过程以及切换过程。

2016-10-14 17:17:16 1096

翻译 ART运行时Mark-Compact( MC)GC执行过程分析

除了Semi-Space(SS)GC和Generational Semi-Space(GSS)GC,ART运行时还引入了第三种Compacting GC:Mark-Compact(MC)GC。这三种GC虽然都是Compacting GC,不过它们的实现方式却有很大不同。SS GC和GSS GC需两个Space来压缩内存,而MC GC只需一个Space来压缩内存。本文就详细分析MC GC的执行过程。

2016-10-14 17:16:17 1037

翻译 ART运行时Semi-Space(SS)和Generational Semi-Space(GSS)GC执行过程分析

Semi-Space(SS)GC和Generational Semi-Space(GSS)GC是ART运行时引进的两个Compacting GC。它们的共同特点是都具有一个From Space和一个To Space。在GC执行期间,在From Space分配的还存活的对象会被依次拷贝到To Space中,这样就可以达到消除内存碎片的目的。本文就将SS GC和GSS GC的执行过程分析进行详细分析。

2016-10-14 17:15:28 1350

翻译 ART运行时Compacting GC为新创建对象分配内存的过程分析

在引进Compacting GC后,ART运行时优化了堆内存分配过程。最显著特点是为每个ART运行时线程增加局部分配缓冲区(Thead Local Allocation Buffer)和在OOM前进行一次同构空间压缩(Homogeneous Space Compact)。前者可提高堆内存分配效率,后者可解决内存碎片问题。本文就对ART运行时引进Compacting GC后的堆内存分配过程进行分析。

2016-10-14 17:14:21 1167

翻译 ART运行时Compacting GC堆创建过程分析

引进了Compacting GC之后,ART运行时的堆空间结构就发生了变化。这是由于Compacting GC和Mark-Sweep GC的算法不同,要求底层的堆具有不同的空间结构。同时,即使是原来的Mark-Sweep GC,由于需要支持新的同构空间压缩特性(Homogeneous Space Compact),也使得它们要具有与原来不一样的堆空间结构。本文就对这些堆空间创建过程进行详细的分

2016-10-14 17:13:04 710

翻译 ART运行时Compacting GC简要介绍

在前面一个系列文章中,我们学习了Android 4.4 ART的Mark-Sweep(MS)GC。到了Android 5.0,ART增加了对Compacting GC的支持,包括Semi-Space(SS)、Generational Semi-Space(GSS)和Mark-Compact (MC)三种。本文对Android 5.0 ART的Compacting GC进行简要介绍以及制定学习计

2016-10-14 17:12:17 861

翻译 ART运行时垃圾收集(GC)过程分析

ART运行时与Dalvik虚拟机一样,都使用了Mark-Sweep算法进行垃圾回收,因此它们的垃圾回收流程在总体上是一致的。但是ART运行时对堆的划分更加细致,因而在此基础上实现了更多样的回收策略。不同的策略有不同的回收力度,力度越大的回收策略,每次回收的内存就越多,并且它们都有各自的使用情景。这样就可以使得每次执行GC时,可以最大限度地减少应用程序停顿。本文就详细分析ART运行时的垃圾收集过程。

2016-10-14 17:11:04 2303

翻译 ART运行时为新创建对象分配内存的过程分析

ART运行时和Dalvik虚拟机一样,在堆上为对象分配内存时都要解决内存碎片和内存不足问题。内存碎片问题可以使用dlmalloc技术解决。内存不足问题则通过垃圾回收和在允许范围内增长堆大小解决。由于垃圾回收会影响程序,因此ART运行时采用力度从小到大的进垃圾回收策略。一旦力度小的垃圾回收执行过后能满足分配要求,那就不需要进行力度大的垃圾回收了。本文就详细分析ART运行时在堆上为对象分配内存的过程。

2016-10-14 17:09:09 1230

翻译 ART运行时Java堆创建过程分析

与Dalvik虚拟机一样,ART运行时内部也有一个Java堆,用来分配Java对象。当这些Java对象不再被使用时,ART运行时需要回收它们占用的内存。在前面一文中,我们简要介绍了ART运行时的垃圾收集机制,从中了解到ART运行时内部使用的Java堆是由四种Space以及各种辅助数据结构共同描述的。为了后面可以更好地分析ART运行时的垃圾收集机制,本文就对它内部使用的Java堆的创建过程进行分析。

2016-10-14 17:08:01 638

翻译 ART运行时垃圾收集机制简要介绍

为了学习ART运行时的垃圾收集机制,我们先把Dalvik虚拟机的垃圾收集机制研究了一遍。这是因为两者都使用到了Mark-Sweep算法,因此它们在概念上有很多一致的地方。然而在实现上,Dalvik虚拟机的垃圾收集机制要简单一些。这样我们就可以先从简单的Dalvik虚拟机垃圾收集机制入手,然后再逐步深入地学习复杂的ART运行时垃圾收集机制。本文就对ART运行时垃圾收集机制进行简要介绍和制定学习计划。

2016-10-14 17:01:09 517

翻译 Dalvik虚拟机垃圾收集(GC)过程分析

前面我们分析了Dalvik虚拟机堆的创建过程,以及Java对象在堆上的分配过程。这些知识都是理解Dalvik虚拟机垃圾收集过程的基础。垃圾收集是一个复杂的过程,它要将那些不再被引用的对象进行回收。一方面要求Dalvik虚拟机能够标记出哪些对象是不再被引用的。另一方面要求Dalvik虚拟机尽快地回收内存,避免应用程序长时间停顿。本文就将详细分析Dalvik虚拟机是如何解决上述问题完成垃圾收集过程的。

2016-10-14 16:53:18 925

翻译 Dalvik虚拟机为新创建对象分配内存的过程分析

在前面一文中,我们分析了Dalvik虚拟机创建Java堆的过程。有了Java堆之后,Dalvik虚拟机就可以在上面为对象分配内存了。在Java堆为对象分配内存需要解决内存碎片和内存不足两个问题。要解决内存碎片问题,就要找到一块大小最合适的空闲内存分配给对象使用。而内存不足有可能是内存配额用完引起的,也有可能是垃圾没有及时回收引起的,要区别对待。本文就详细分析Dalvik虚拟机是如何解决这些问题的。

2016-10-14 16:51:43 847

翻译 Dalvik虚拟机Java堆创建过程分析

使用C/C++开发应用程序最令头痛的问题就是内存管理。慎不留神,要么内存泄漏,要么内存破坏。虚拟机要解决的问题之一就是帮助应用程序自动分配和释放内存。为了达到这个目的,虚拟机在启动的时候向操作系统申请一大块内存当作对象堆。之后当应用程序创建对象时,虚拟机就会在堆上分配合适的内存块。而当对象不再使用时,虚拟机就会将它占用的内存块归还给堆。Dalvik虚拟机也不例外,本文就分析它的Java堆创建过程。

2016-10-14 16:50:02 645

翻译 Dalvik虚拟机垃圾收集机制简要介绍

伴随着“Dalvik is dead,long live Dalvik“这行AOSP代码提交日志,在Android5.0中,ART运行时取代了Dalvik虚拟机。虽然Dalvik虚拟机不再使用,但是它曾经的作用是不可磨灭的。因此,在研究ART运行时的垃圾收集机制之前,先理解Dalvik虚拟机的垃圾收集机制也是很重要和有帮助的。因此,本文就对Dalvik虚拟机的垃圾收集机进行简要介绍和制定学习计划。

2016-10-14 16:48:40 523

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除