首页
Yong's Blog
取消

WebAssembly是什么

2019 年 12 月 5 日,WebAssembly正式加入 HTML、CSS 和 JavaScript 的 Web 标准大家庭。很多事情都会受益于这一全新的标准,并且它在浏览器中的性能表现是空前的。此前,开发者迈赫迪·扎伊德(Mehdi Zed)发文简要介绍了这个正在进行中的小变革,对此行了翻译,希望能给你带来启发。 WebAssembly的诞生背景 1995 年,布伦丹·艾希(Bre...

Golang zap 快速上手

1.zap 是什么? zap 是 Uber 开源的一款高性能日志库,它支持多种日志级别和输出方式,包括 console、json、file 等。zap 性能比较优秀,它使用了 Zero Allocation 的设计理念,在不影响性能的情况下尽量避免内存分配。 2.zap 快速上手 1.安装 Zap 使用 Golang Zap 需要先安装它。您可以使用 go get 命令从 GitHu...

Golang map 三板斧第三式:实现原理

以 Go 1.15 1.数据结构 1.1 简介 Go map 底层实现方式是 Hash 表(C++ map 基于红黑树实现,而 C++ 11 新增的 unordered_map 则与 Go map 类似,都是基于 Hash 表实现)。Go map 的数据被置入一个由桶组成的有序数组中,每个桶最多可以存放 8 个 key/value 对。key 的 Hash 值低位用于在该数组中定位到桶...

在linux服务器上安装Jenkins

Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用。本章教大家如何在linux服务器上安装Jenkins。 安装jdk Jenkins的运行需要依赖jdk,所以在安装Jenkins之前我们得先把jdk装上。 执行命令yum -y list java*查看可安装java版本。执行成功后可以看见如下的结果 选择一个java版本进行安装...

Mysql数据库高CPU问题定位和优化

导致mysql数据库CPU高的常见原因 占用CPU过高,可以做如下考虑 一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引; 打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、O...

队列:Beanstalkd介绍

一:介绍 Beanstalkd 是一个轻量级的内存型队列。它是典型的类Memcached设计,协议和使用方式都是同样风格。 github:https://github.com/beanstalkd 官网:https://beanstalkd.github.io/ 二:功能特性 优先级 任务job可以有0~2^32 个优先级, 0 代表最高优先级,默认优先级为1024。 ...

docker + redis + beanstalkd + swoole 构建健壮的队列

使用到的技术有docker + redis + beanstalkd + swoole #从仓库里将redis和beanstalkd下载 docker pull redis:5.0.7 docker pull schickling/beanstalkd #查看镜像列表 docker images #将beanstalkd运行在docker容器并映射到本地主机11300端口 docker r...

PHP 完善的 Error / Exception 的捕获与处理

PHP(PHP_VERSION >= 7) 的 Error / Exception 的捕获与处理还是值得一说的,优雅处理错误与异常,在提升框架友好度的同时,也提升了开发效率。 PHP 错误等级 # 系统级用户代码的一些错误类型 可由 try ... catch ... 捕获 E_PARSE 解析时错误 语法解析错误 少个分号 多个逗号一类的 致命错误 E_ERRO...

go语言坑之并发访问map

go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典、哈希表。借助map,可以定义一个键和值,然后可以从map中获取、设置和删除这个值,尤其适合数据查找的场景。但是map的使用有一定的限制,如果是在单个协程中读写map,那么不会存在什么问题,如果是多个协程并发访问一个map,有可能会导致程序退出,并打印下面错误信息: fatal error: concurrent map...

go语言并发与并行——goroutine和channel的详细理解

如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。 Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。 以下是我入门的学习笔记。 Go语言的goroutines、信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻。 以下的程序,...