计算机组成与设计:硬件_软件接口中文答案(第一章)

1.1 [2] <1.1>列举和描述除智能手机之外的4种类型的计算机。

解答:
个人电脑(personal computer),英文简称PC
个人移动设备(Personal mobile device),英文简称PMD
服务器(server)
超级计算机(super computer)
嵌入式计算机(embedded computer):
仓库规模计算机(warehouse scale computer),英文简称WSC

继续阅读

计算机组成与设计-计算机概要与技术

一、硬件和软件是如何影线性能的?

  • 算法:决定了源码级语句的数量和I/O的操作数量
  • 编程语言、编译器和体系结构:决定了每条源码对应的计算机指令数量
  • 处理器和存储系统:决定了每条指令的执行速度
  • I/O系统:决定了I/O操作的执行速度

继续阅读

Prometheus中文文档

https://prometheus.fuckcloudnative.io/di-san-zhang-prometheus/di-4-jie-cha-xun/basics

优秀程序设计的Kiss原则

良好的编程原则与良好的设计工程原则密切相关。本文总结的这些设计原则,帮助开发者更有效率的编写代码,并帮助成为一名优秀的程序员。

1.避免重复原则(DRY – Don’t repeat yourself)

编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。

2.抽象原则(Abstraction Principle )

与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。

继续阅读

理解二叉树的四种遍历-前序、中序、后序、层序

一、易懂的形象理解

其实从名字就可以很好的理解这三种遍历,我在第二点时候说,但是估计能翻到我的文的同学们之前肯定看过好多类似的了,那咱们换个思路~ 先用我想的一种简单易懂的形象思维理解一下前序、中序、后序 +层序!

1、先序遍历

先序遍历可以想象成,小人从树根开始绕着整棵树的外围转一圈,经过结点的顺序就是先序遍历的顺序
先序遍历结果:ABDHIEJCFKG

继续阅读

GO中参数传递的理解

针对字符、数组、切片、struct在函数调用中,使用的是传值还是传引用?做一下汇总

GO中值交换的原理

今天在coding中发现有这么一段代码,可以实现值交换,但具体的原理是什么?还不清楚,列个todo项,有空再研究下

a, b := 10, 5
b, a = a, b

继续阅读

递归算法满足的三个条件

递归算法是常见的一种算法,那究竟什么样的问题可以用递归来解决呢?我总结了三个条件,只要同时满足以下三个条件,就可以用递归来解决。

1. 一个问题的解可以分解为几个子问题的解,何为子问题?

子问题就是数据规模更小的问题。比如,前面讲的电影院的例子,你要知道,“自己在哪一排”的问题,可以分解为“前一排的人在哪一排”这样一个子问题。

继续阅读

数据结构与算法-数组 & 链表

数组是一种常见的线性表结构,它用一组连续的内存空间,来存储一组具有相同类型的数据;定义中标识出来的,是数组的3个基本特性;线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向,除了数组外,链表,队列,栈也都是线性表结构;与它对应的是非线性表结构,如二叉树、堆、图等;

链表也是一种常见的线性表结构,它用一组非连续的内存空间,来存储一组具有相同类型的数据;注意和数组的区别,与数组最大的区别在于,链表是使用一组非连续的内存空间,链表分为单向链表、循环链表、双向链表、双向循环列表;

继续阅读

认识时间复杂度与空间复杂度

我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。

继续阅读

锁机制及CAS实现原理

一、锁机制

常用的锁机制有两种:悲观锁、乐观锁,下面我们分别介绍下。

1、悲观锁
  • 假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。
  • 悲观锁的实现,往往依靠底层提供的锁机制。
  • 悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。

继续阅读

常见开源OLAP技术架构对比

1. 什么是OLAP

OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。可以比较下其与传统的OLTP(On-line Transaction Processing,联机事务处理)的区别来看一下它的特点:

继续阅读

ETL与大数据是什么关系?

一、ETL发展的历史背景

随着企业的发展,各业务线、产品线、部门都会承建各种信息化系统方便开展自己的业务。随着信息化建设的不断深入,由于业务系统之间各自为政、相互独立造成的数据孤岛”现象尤为普遍,业务不集成、流程不互通、数据不共享。这给企业进行数据的分析利用、报表开发、分析挖掘等带来了巨大困难。

在此情况下,为了实现企业全局数据的系统化运作管理(信息孤岛、数据统计、数据分析、数据挖掘) ,为DSS(决策支持系统)、BI(商务智能)、经营分析系统等深度开发应用奠定基础,挖掘数据价值 ,企业会开始着手建立数据仓库,数据中台。将相互分离的业务系统的数据源整合在一起,建立一个统一的数据采集、处理、存储、分发、共享中心,从而使公司的成员能够从不同业务部门查看综合数据,而这个过程中使用的数据处理方法之一就是ETL。

继续阅读

设计模式

一、设计模式解决的问题

使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性