Rust-学习笔记 简介Rust是一门系统编程语言,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。 Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。 Rust的设计者们通过在研发Servo 2022-10-01 编程语言 > Rust #Rust
网络编程-Linux高性能服务器编程 目录 第六章 I/O复用I/O复用使得程序同时监听多个文件描述符 通常网络程序在以下情况需要使用到I/O复用 客户端程序(用户进程)要同时处理多个socket 客户端程序要同时处理用户输入和网络连接 TCP服务要同时处理监听socket和连接socket(这是I/O复用最多的场景) 服务器需要同时处理TCP请求和UDP请求 服务器要同时监听多个端口,或者处理多种服务 Linux下实现I/O 2022-09-15 服务器篇 > Linux服务器
性能调优-内存泄露的排查方法 背景内存泄露的定义 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 思路 top命令查看服务器负载 1top jps查看java进程pid 1jps -l jstack查看运行栈信息 1jstack -l <pid> 利用jstack -l 查看那些cpu使用率 2022-09-01 编程语言 > Java > 性能调优 #内存泄漏
数据结构-Binary Indexed Tree 树状数组 简介 树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为Fenwick树,最早由Peter M. Fenwick于1994年以A New Data Structure for Cumulative Frequency Tables为题发表在SOFTWARE PRACTICE AND EXPERIENCE。其初衷是解决数据压缩里的累积频率(Cumulative 2022-08-13 数据结构 #树状数组
Vmware fusion 配置静态IP + 外网访问 背景因近期项目需要对Kubernetes进行二开所以在本地搭建一个小集群,但是arm架构下的虚拟化适配还不是很完善,就连Centos的镜像都需要特殊适配,本篇主要是记录在搭建虚拟机实例静态IP,实现切换网络也无需任何更改即可交互访问 预期效果 虚拟机拥有一个静态IP,在我们切换WIFI/网络不受影响 虚拟机能访问外网 虚拟机之间能够相互通信 虚拟机和宿主机之间能够相互通信(SSH登录) 环境 2022-07-09 服务器篇 > 虚拟机
学习笔记-I/O模型详解 相关背景 理解IO的各种模型需要先了解计算机的运作流程,下面将对其一些专业的名称做一些简单介绍 什么是I/O? 在计算机系统中I/O就是输入(Input)和输出(Output)的意思,针对不同的操作对象,可以划分为磁盘I/O模型,网络I/O模型,内存映射I/O, Direct I/O、数据库I/O等,只要具有输入输出类型的交互系统都可以认为是I/O系统。I/O可以简单的认为就是“读写”。 在 2022-06-04 服务器篇 > Linux服务器 #IO模型
并发笔记-ThreadPoolExecutor详解 简介ThreadPoolExecutor一种ExecutorService,使用可能的多个池线程之一执行每个提交的任务,通常使用Executors工厂方法进行配置。线程池解决了两个不同的问题:它们通常在执行大量异步任务时提供更好的性能,这是因为减少了每个任务的调用开销;它们还提供了一种方法来限制和管理执行任务集合时消耗的资源,包括线程。每个ThreadPoolExecutor还维护一些基本统计信 2022-05-30 编程语言 > Java > 并发相关 #JUC
并发笔记-JUC之Unsafe类 相关背景 一下代码基于JDK1.8进行分析,在高版本中部分方法已经被删除获取迁移到其他地方。 Java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作。Unsafe类使用private修饰构造方法,只能使用他自己提供的一个final类来进行获取。 123456789101112131415161718private static native void 2022-05-25 编程语言 > Java > 并发相关
笔记篇-GRPC学习笔记 Grpc介绍 在gRPC中,客户端应用程序可以直接在其他计算机上的服务器应用程序上调用方法,就好像它是本地对象一样,从而使您更轻松地创建分布式应用程序和服务。在许多RPC系统中,gRPC都基于定义服务的思想,即指定可以使用其参数和返回类型远程调用的方法。在服务器端,服务器实现此接口并运行gRPC服务器以处理客户端调用。在客户端,客户端具有一个存根(在某些语言中简称为客户端),提供与服务器相同的方 2022-05-10 学习笔记 #grpc
学习笔记- Garbage Collector 垃圾收集器 背景Java 内存模型(Java Memory Model) 堆它是一个共享的运行时数据区,将实际对象存储在内存中。它在虚拟机启动期间被实例化。该内存分配给所有类实例和数组。堆的大小可以是固定的,也可以是动态的,具体取决于系统的配置。JVM提供了用户控件,可以根据需要初始化或改变堆的大小。当使用一个新关键字时,会在堆中为对象分配一个空间,但该关键字的引用存在于堆栈中。一个正在运行的JVM进程只有 2022-05-05 编程语言 > Java > 垃圾收集 #GC