Linux如何将进程绑定CPU核心以提高性能

在Linux系统中,进程的调度切换是由内核自动完成的,在多核CPU上,进程有可能在不同的CPU核上来回切换执行,这对CPU的缓存不是很有利。为什么呢?先看一张 Intel i5 CPU 的缓存简单示意图: 在多核CPU结构中,每个核心有各自的L1、L2缓存,而L3缓存是共用的。如果一个进程在核心...

2019-02-26 23:43:39

阅读数 517

评论数 0

Nginx中的频控模块示例

简介 陶辉老师《深入理解Nginx》中的示例代码,支持IP+URL级别的频控。 频控以模块的方式嵌入Nginx。采用 红黑树+链表 的方式实现,每当一个IP访问一次URL,红黑树将会插入一个节点,节点包含本次访问时间。 当相同的IP短时间内访问同样的URL时,红黑树就会查找到刚插入的节点,找出上次...

2019-01-24 07:58:07

阅读数 57

评论数 0

《深入理解Nginx》upstream机制完整代码

陶辉老师写的《深入理解Nginx》一书很赞,书中 5.3节 使用upstream的示例 的代码略有缺失,编译通不过,我补充成了完整可跑的,供大家参考。nginx自制模块的编译见书本3.3节。 config文件: ngx_addon_name=ngx_http_mytest_module HT...

2018-10-10 07:29:21

阅读数 321

评论数 0

优化Visual Studio Code的自动补全

Visual Studio Code (简称VS Code)是个很棒的代码编辑器,内置多种语言的自动补全功能,写JavaScript也不例外,VS Code提供的自动补全还是很赞的。 不过自动补全功能在有些情况下会失效,比如 document.getElementById() 或 documen...

2018-06-11 21:58:11

阅读数 36247

评论数 3

Webpack 4.0 + Vue多页配置

Webpack 4.0 + Vue 的多页配置,注意 vue-loader 目前还请使用 14.2.2 版本,15版本在编译时会有问题。 package.json { "name": "learn", &...

2018-05-01 08:04:41

阅读数 1875

评论数 0

Workerman如何在WebSocket响应中添加Header

最近在用 Workerman 学习 WebSocket 的时候,遇到了一个问题: var ws = new WebSocket('ws://' + document.domain + ':8081', 'encrypt'); 结果浏览器报了这个错: Error during Web...

2018-04-28 08:43:37

阅读数 7217

评论数 0

PHP实现Huffman编码/解码

Huffman 编码是一种数据压缩算法。我们常用的 zip 压缩,其核心就是 Huffman 编码,还有在 HTTP/2 中,Huffman 编码被用于 HTTP 头部的压缩。 本文就来用 PHP 来实践一下 Huffman 编码和解码。 1. 编码 字数统计 Huffman编码的...

2018-04-19 18:34:08

阅读数 244

评论数 0

PHP内核队列使用一例

写了一段代码,展示了PHP如何使用内核队列。 场景是:父进程产生消息,放入队列,子进程从队列读取消息,并处理。 <?php $msg_key = ftok(__FILE__, 'a'); $msg_queue = msg_get_queue($msg_key, 064...

2018-04-09 19:55:58

阅读数 91

评论数 0

用 div 实现自制滚动条

https://math-digital.cn/blog/11

2018-03-21 09:27:35

阅读数 374

评论数 0

Bootstrap 4风格的select2下拉框

https://math-digital.cn/blog/8

2018-03-16 23:14:53

阅读数 2858

评论数 1

Workerman的reusePort属性详解

http://math-digital.cn/blog/1

2018-02-28 22:06:53

阅读数 239

评论数 0

Bootstrap4 定制自己的颜色和风格

https://math-digital.cn/blog/2

2018-02-25 17:47:16

阅读数 7420

评论数 1

Vue实现带进度条的文件拖动上传

https://math-digital.cn/blog/3

2018-02-22 17:36:15

阅读数 1218

评论数 0

不另写CSS,Bootstrap 4 实现步骤条

https://math-digital.cn/blog/9

2018-02-10 11:23:03

阅读数 1826

评论数 0

PHP OpenSSL扩展 - 非对称加密

https://math-digital.cn/blog/4

2018-02-08 20:41:58

阅读数 123

评论数 0

PHP OpenSSL扩展 - 对称加密

https://math-digital.cn/blog/5

2018-02-05 22:11:29

阅读数 643

评论数 0

图解Numpy的tile函数

Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。 举个例子,原矩阵: mat = array([[1,2], [3, 4]]) 横向: tile(mat, (1, 4)) # 等同于 til...

2018-01-26 16:47:33

阅读数 133

评论数 0

Vue多页应用的极简配置

Vue的官方脚手架工具 vue-cli 提供了很多种已配置好的模板,但这些模板的webpack配置看起来比较麻烦,而且有些配置在项目中也许根本用不到。本文就提供个思路,只保留最必须的代码,搭建出一个Vue多页应用的开发环境。整体思路整体思路如下图。每一个Vue组件,按照官方推荐的方式,写在单独的....

2018-01-17 09:25:46

阅读数 812

评论数 0

Drools7.x环境搭建与简单示例

Drools是个规则引擎的开源实现。官方文档比较长。这里提供一个方法,搭建最基本的Drools运行环境,并提供一个简单示例。 环境准备: JDK 至少需要JDK 1.5以上,JDK去这里下载:http://www.oracle.com/technetwork/java/javase/do...

2018-01-10 13:15:45

阅读数 5460

评论数 1

Vue标签输入框

Vue组件、使用方法都在代码里了。效果如下: 附上所有代码: html lang="en"> head> meta charset="UTF-8"> meta name="viewport" c...

2018-01-09 09:56:11

阅读数 3970

评论数 0

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