- 博客(50)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
翻译 使用Rust和Elixir实现高效的下发好友列表
我的专栏地址:我的segmentfault,欢迎浏览去年,Discord的后端基础设施团队努力提高核心实时通信基础设施的可扩展性和性能。我们进行的一个大项目是改变我们更新公会成员列表的方式(屏幕右侧的那些漂亮的头像)。我们可以直接发送会员列表中可见部分的更新(分页),而不是为会员列表中的每个人都发送更新。这样做的好处很明显,例如网络流量更少,CPU使用率更低,电池寿命更长等等。然而,这给服...
2019-06-02 12:46:49 933
翻译 Tensorflow Rust实战上篇
我的专栏地址:我的segmentfault,欢迎浏览机器学习的一个方向是能够将它用于照片中的对象识别。这包括能够挑选动物,建筑物甚至人脸等特征。本文将引导您使用一些现有模型来使用rust和tensorflow完成人脸检测。我们将使用一个名为mtcnn的预训练模型进行人脸检测(注意:训练新模型不是我们在本文中关注的内容)。挑战我们想要读取照片,检测到人脸,然后返回带有绘制边界框的图像。换句...
2019-04-21 23:45:59 2388 1
原创 rust使用vscode调试环境
我的专栏地址:我的segmentfault,欢迎浏览1、需安装vscode插件 RLS(vscode搜索插件rls) 、 lldb(vscode搜索插件codelldb)2、配置lldb调试文件// lldb的launch.json配置内容"version": "0.2.0", "configurations": [ { "name": "...
2019-04-15 21:05:17 13285 4
原创 rust的私有代码仓库
我的专栏地址:我的segmentfault,欢迎浏览背景公司内部要使用或推广必须要满足私有性和保密性,公司内部的代码是不可以公开到公网上的。rust的公开代码仓库是crates.io,那么私有仓库的解决方案是什么?我们一起来探索一下。国外网站reddit有人发出了对私有仓库的需求并提问到:Private “crates.io”Hi,I’m trying to advocate fo...
2019-04-15 20:59:00 1513
原创 高性能mongodb之应用程序跑执行计划
执行计划之前发了一篇关于mongodb执行计划的说明。利用执行计划,我们可以判断每一次sql的执行情况和mongodb给出的执行建议。在mongo shell中跑执行计划的命令,举个例子:db.collecitonName.find({}).explain("queryPlanner")执行计划的模式为三种:queryPlanner executionStats allPlansExe...
2019-03-07 11:03:45 222
翻译 一些关于Rust在2019年的思考
每年,我们都会要求社区撰写有关他们希望在Rust的明年路线图中看到的内容的博客文章。 A call for Rust 2019 Roadmap blog posts这是我在2019年的Rust帖子。###Rust 2021: 成熟今年也有点特别; 在2018年,我们对Rust推出了大约三年的版本时间表。 所以现在不仅是思考2019年的好时机,而且也是2020年和2021年的时候。 Rust在2...
2019-02-24 13:39:56 513
原创 高性能mongodb之使用ycsb进行性能测试
我的专栏地址:我的segmentfault,欢迎浏览一、ycsb压测工具1.1ycsb workloadycsb的workloads目录下保存了6种不同的workload类型,代表了不同的压测负载类型,详细的介绍列在下面:workloada:混合了50%的读和50%的写;workloadb:Read mostly workload,混合了95%的读和5%的写,该workload侧重于测试集...
2019-02-22 19:24:19 2624 1
原创 高性能mongodb之利用javascript函数式编程玩转mongodb shell
我的专栏地址:我的segmentfault,欢迎浏览命令一集合记录数列表: db.getCollectionNames().forEach((name) => {print(name+","+db[name].stats().count)})快速展示mongo所有集合和集合的文档数,但是没有做排序。> db.getCollectionNames().forEach((name...
2019-02-11 20:39:40 1083
原创 高性高mongodb之执行计划
一、执行计划介绍MongoDB 3.0之后,explain的返回与使用方法与之前版本有了不少变化,介于3.0之后的优秀特色,本文仅针对MongoDB 3.0+的explain进行讨论。现版本explain有三种模式,分别如下:queryPlannerexecutionStatsallPlansExecution其中 queryPlanner 是现版本explain的默认模式,quer...
2019-02-11 19:51:09 308 1
原创 facebook大牛讲述内部推Rust的历程《bring rust home to meet parents》翻译
https://yuer1727.gitbooks.io/-rust-facebook-ppt/content/qian-yan.html
2019-08-18 17:22:30 248
原创 raft算法学习记录
分布式系统中考虑得最多的一个问题:节点崩溃raft算法中节点分三类: leader、follower、candidate。其中最复杂的问题都和leader节点崩溃有关,follower和candidate简单直观。如何比较两个节点的日志条目,哪个节点的日志更加新?任期大者,更新任期相同者,index大者更新leader日志完整性特性(Leader Completeness P...
2019-03-24 20:54:45 198
原创 在公司三年跌宕起伏的经历
前传人总有过一些暴富的念头,择一业、埋头干、终暴富。这是一个简单直接的路线,那么这条康庄大道究竟是怎么样的,路口在何方。互联网,这个时代出现暴富的事例最频繁的行业之一。大者,有腾讯阿里先后市值破5000亿美元大关,带领一部分员工实现财富自由,走向人生颠峰。近者,页游、手游行业许多小公司造出月流水过亿的项目,一夜间项目主程、主策、主美短期内也积累了不少财富。再者,14年的股市、1516年的楼市、1...
2019-03-09 15:11:50 416
翻译 一篇Rust的30分钟介绍
我最近向Rust的文档提交了一个提案。 我通篇提案中一个重要组成部分是对可能听说过Rust的人简短而简单的介绍,以便他们能够确定Rust是否适合他们。 前几天,我看到了一个精彩的演讲,并认为它可以作为这个介绍的一个很好的基础。 将此视为此类介绍的RFC(Request For Comments)。 非常欢迎反馈在rust-dev或Twitter上。这个教程已经成为官方教程。Rust是一种系统编...
2019-02-27 09:32:59 303
原创 淘宝top接口响应时间优化
一、背景调用top接口的响应时间长(160ms左右),超时和连接异常频繁发生。导致消息组件消费工程的tps遇到瓶颈(单实例单消息队列250tps),只能通过增加实例数来支撑更高的消费能力。二、目标1、最大程度降低top接口的响应时间。2、减少超时和连接异常的次数。三、优化过程阶段一按top接口文档接入,以jws的AsyncHttp类作为http客户端。接口文档:http://ope...
2019-02-22 19:30:39 926
转载 C++的头文件和实现文件分别写什么
原文地址:http://www.cnblogs.com/ider/archive/2011/06/30/what_is_in_cpp_header_and_implementation_file.html#cpp_director在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,
2016-11-25 17:53:51 345
转载 Golang测试技术
转载地址:http://studygolang.com/articles/1889本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内
2016-05-17 14:19:19 610
转载 golang模板语法简明教程
转载地址:http://www.admpub.com/blog/post-221.html129月2014【模板标签】模板标签用"{{"和"}}"括起来 【注释】{{/* a comment */}}使用“{{/*”和“*/}}”来包含注释内容 【变量】{{.}}此标签输出当前对象的值{{.Admpub}}表示输出Stru
2016-05-07 13:11:58 621
原创 golang入门--struct Tag的语法
今天想用xorm连接数据库做一个项目,发现xorm的结构体和数据库表的映射关系的建立是通过struct Tag来实现的。所以有必要了解下Tag的语法和作用。看代码秒懂: 1 package main 2 import ( 3 "fmt" 4 "reflect" // 这里引入reflect模块 5 ) 6 type User struct { 7 Nam
2016-04-21 18:46:56 4349
原创 golang入门-- import包与包内init方法的执行时机
最近在学习revel(golang web开发框架) ,了解到revel管理和加载所有controller的方式。其中涉及的golang基础知识是import包。下面我们先来看看golang imort包的几种方法和特征
2016-04-20 11:21:58 8479 1
转载 Log4j – 如何配置多个logger
原创地址:http://blog.csdn.net/evatian/article/details/8501517内容简介:本文主要介绍 在一个系统中如何通过log4j的配置文件配置出多个logger,使得该系统可以在不同路径下输出多个内容不同的log 文件。并通过该实例的实现过程进一步讲解log4j的一些特性。 具体内容:1. 如何在项
2016-04-15 11:31:34 1093
原创 golang入门-- 一个2D的图形库学习
此库叫gg,源码在github。1、获取源码并安装到本地: 首先要安装git (传送门) : https://git-scm.com/download/ 然后就可以通过 go get 命令从git获得源码并安装(此处默认大家已安装go) : 在cmd 进入GOPATH目录,然后输入 : go get github.com/fogleman/gg
2016-03-17 21:38:22 2897
原创 golang入门--一个简单的http client
package mainimport ( "fmt" "io/ioutil" "log" "net/http" "net/url")func main() { //resp, _ := doGet("http://www.baidu.com") //resp, _ := doPost("http://www.baidu.com", "application/json;ch
2016-03-17 18:01:01 1327
转载 tcp的各种连接状态
tcp的各种连接状态LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */SYN_SENT:客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.
2014-09-10 21:59:01 579
转载 Http协议原理解析第一篇
Http协议原理解析第一篇一:http的由来:OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络):网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通信
2014-08-10 15:32:53 684
原创 opengl 屏幕 窗口 视口 裁剪区
首先解释下图形学中的屏幕,窗口,视见区(视口),裁剪区。屏幕:即计算机的整个屏幕大小。窗口:即屏幕中的某一个窗口,可放大放小和移动关闭。视口:即在窗口中可以见到或可以用来绘图的部分。一般设置视口等于窗口。裁剪区:即在视口中让你看到的图形,即显示出来的那部分。
2014-07-06 15:14:56 2645 1
原创 apue读书笔记【九】:复制一个现存的文件描述符 dup dup2 fcntl
一、函数名称:opendir函数原型:DIR * opendir(const char* path); 函数功能:打开一个目录,在失败的时候返回NULL(如果path对应的是文件,则返回NULL) 返回值:
2014-06-08 16:27:41 729
原创 apue读书笔记【八】:目录操作opendir readdir closedir
头文件:#include#includeopendir():函数原型:DIR * opendir(const char* path);打开一个目录,在失败的时候返回NULL(如果path对应的是文件,则返回NULL)DIR 结构体的原型为:struct_dirstream 在linux系统中: typedef struct __di
2014-06-08 15:39:31 647
原创 apue读书笔记【六】:文件IO(2) lseek
lseek 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字节。但是有一个例外,如果以O_APPEND方式打开,每次写操作都会在文件末尾追加数据,然后将读写位置移到新的文件末尾。lseek和标准I/O库的fseek函数类似,可以移动当前读写位置(或者叫偏移量)。所有打开的文件都有一个当前
2014-06-08 13:34:41 578
原创 apue读书笔记【五】:文件IO(1) fileno open read write
文件描述符函数名称:fileno(在VC++6.0下为_fileno) 函数原型:int _fileno( FILE *stream ); 函数功能:fileno()用来取得参数stream指定的文件流所使用的文件描述符 返回值:某个数据流的文件句柄 头文件:stdio.h 相关函数:open,fopen,fclose
2014-06-08 12:32:38 725
原创 apue读书笔记【三】:处理可变参数(3) snprintf 、apue.h和error.c的封装
同样出自apue.h error.c ,与vsnprintf的用法相似,也是拷
2014-06-07 19:20:14 1012
原创 apue读书笔记【二】:处理可变参数(2) vsnprintf
vsnprintf 用于向字符串中打印数据、数据格式用户自定义头文件: #include 函数声明: int vsnprintf(char *buffer, size_t max_count, const char *format, va_list vArgList); 参数说明: 1. char *buffer [out],把生成的格式化的字符串存放在这里.
2014-06-07 18:10:41 652
原创 apue读书笔记【一】:处理可变参数(1) va_list 、va_arg、 va_start、 va_end
你要是对这个问题,有问题,那你应该不清楚 c 可以处理,变长的参数了吧?、c 的 printf 的函数原型,你清楚不?int printf(const char *fmt, ...); // 逗号,后面,即第二个参数是三个点vsprintf 的函数原型:int vsprintf(char *s, const char *fmt, va_list arg);你见过va_list类
2014-06-07 16:32:12 857
转载 C++开发必看 四种强制类型转换的总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是
2014-05-28 19:16:04 629
转载 C++完美实现Singleton模式
Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。1. 标准的实现class Singleton{public: static Singleton * Instance() { if( 0== _instance) {
2014-05-27 22:57:13 609
转载 C/C++ 开发库 | C/C++ Development Library
C/C++ 开发库 | C/C++ Development Library这里收集一些著名的 C/C++ 开发库、SDK、类库、可复用类与结构代码 等信息,列举它们的介绍、参考和网站链接,为各位 C/C++ 程序员和爱好者提供检索和查阅类库的方便下面收集的 C/C++ 类库介绍整理来源于文章:C++ 资源之不完全导引(作者:曾毅、陶文),这篇文章曾发表于 2004 年 5 月《CSDN 开
2014-05-06 11:08:57 1015
转载 [转载] Linux的capability深入分析
[转载] Linux的capability深入分析一)概述:1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作.2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概
2014-04-21 00:09:44 2770
转载 C和C++混合编程
引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:1#ifdef __cplusplus2extern"C" { 3#endif4 5/*...*/
2014-03-18 16:48:55 702
转载 【c/c++笔试题一】const变量通过指针修改问题
const的变量在特定情况下可以通过指针修改,但是在另一些情况下是不能通过指针修改。以下是VC6下才测试。1 不能修改的情况#include int const a = 10;void main(void){ int *p = (int*)&a; *p = 20; printf("%d\n", *p);}程序编译通过,但运行时错误:指示a存储的空
2014-03-18 14:12:24 861
erlang的ide:erlide
2013-09-30
pyqt4与stackless 共存安装
2013-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人