LevelDB 源代码阅读(一):写流程 LevelDB 是一款基于 LSM 树的嵌入式高性能 NoSQL 数据库,由 Google 的两位 Fellow (Jeff Dean 和 Sanjay Ghemawat)设计开发。LevelDB 最初使用 C++ 开发,后面衍生出了不同语言版本,如 Go-LevelDB、 Java-LevelDB 等。本系列文章基于最新 C++ 版 LevelDB(1.23.0,截止 2021.7.8),对其结 2021-07-08 数据库 > 源代码阅读 > LevelDB
操作系统(三):进程间通信 在现代操作系统中,使用多个进程来实现应用和系统是一种广泛使用的方法。进程间通信(Inter-Process Communication) 是多进程协作的基础。 一般来说,IPC 至少需要两个进程参与。根据信息流动的方向,这两方可以被称为发送者和接收者。在实际使用中,IPC 常被用于服务调用,因此参与 IPC 的双方又被称为调用者和被调用者,或者客户端和服务端。 为了有效地协同工作,进程间通信一般伴 2021-03-23 计算机科学 > 操作系统
操作系统(二):进程与线程 进程为了管理操作系统中各种各样的程序,操作系统定义了进程(Process)的抽象:每个进程都对应于一个运行中的程序。为了使得多个进程可以同时执行,操作系统提出了上下文切换机制,通过保存和恢复进程在运行过程中的状态(即上下文),使进程可以暂停、切换、恢复,从而实现了 CPU 资源的共享。同时,使用虚拟内存机制,为每个进程都提供了独立的虚拟地址空间。 进程状态为了对进程进行管理,首先需要定义进程的状态 2021-03-12 计算机科学 > 操作系统
操作系统(一):内存 虚拟内存为了让每个应用都可以高效又安全地使用物理内存,现代操作系统中会在应用程序和物理内存之间加入一层新的抽象:虚拟内存。应用程序在编写时仅考虑虚拟内存,CPU 在运行时将应用程序的虚拟内存地址翻译成物理内存地址,操作系统负责设置虚拟地址与物理地址之间的映射。 虚拟内存的设计有以下三个目标: 高效性:虚拟内存不能在程序运行过程中造成明显的性能开销,且虚拟内存抽象也不应该占用过多的物理内存资源。 2021-03-11 计算机科学 > 操作系统
Windows 下使用 Visual Studio 2019 进行 CUDA 编程 CUDA 安装CUDA 的安装比较简单,下载了安装包以后一直点 Next 就行了,可以参考这个博客。 安装完以后对 CUDA 进行一下测试,在命令行执行 nvcc -V 得到下面的结果说明安装成功 12345$ nvcc -Vnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2019 NVIDIA CorporationBuilt on 2020-12-04 环境配置 > CUDA 编程
Distilling a Nerual Network Into a Soft Decision Tree 翻译 下面是我对《Distilling a Nerual Network Into a Soft Decision Tree》的简单翻译 Abstract深度神经网络在分类任务上有很出色的表现,但是却非常难解释其对一个具体的测例做出分类的原因。这是因为他们非常依赖于分布式的分层表示。如果我们将从神经网络中获取到的知识用一个依赖于分层决定的模型来进行表示,解释一个具体的决定会变得更加容易。我们提出了一种使 2020-11-19 深度学习
HTML基本语法及使用 HTML简介HTML全程为Hyper Text Markup Language,翻译过来是超文本标记语言。所谓的超文本,包含了普通文本、图片、标题、表格、链接等。HTML是前端中最常使用的三个语言之一,一般由其组成网页的骨干。 HTML示例下面有一段简单的HTML代码。 1234567891011<!doctype html><html> <head> 2019-07-01 网页前端
最长回文子序列问题 问题描述回文是正序与逆序相同的非空字符串。例如,所有长度为1的字符串、civic、racecar、aibohphobia(害怕回文之意)都是回文。 设计高效算法,求给定输入字符串的最长回文子序列。例如,给定输入 character,算法应该返回 carac。算法的运行时间是怎么样的? 题解本题出自《算法导论》第 15 章的思考题15-3。这道题可以使用暴力罗列的方法做,那么总共会有 $2^n$ 种 2019-06-14 算法 > 动态规划
Pytorch使用Visdom可视化 VisdomVisdom是Pytorch自带的一个可视化工具,能够在训练神经网络的过程中,将一些数据进行可视化。目前Visdom可以支持Numpy和Torch。 安装1$ pip install visdom 启动服务1$ python -m visdom.server 默认的端口号为8097,如果需要更改端口号,可以加入-p选项 两个概念使用Visdom需要区分其中的一些概念,以将可视化 2018-03-11 深度学习 > 工具