服务端开发
文章平均质量分 85
爱拍凯特
热爱开源,热爱新技术,热爱黑科技。
展开
-
Go语言中的GC机制
Go语言和C/C++语言的一个显著的特点是Go中对象内存空间的回收是通过GC机制来完成的,不需要像C++一样通过程序员的手动申请和释放,所以Go中相对不容易出现内存泄漏,不过也不是绝对的(后面会在写一篇文章来说明Go中的内存泄漏和Gorotinue泄漏,以及Go的内存逃逸),今天我们就来详细聊聊Go中的GC机制。首先要先说一下GC,GC机制是在Java语言被广泛使用之后所火起来的,像后来的脚本语言Python都支持GC,GO也支持GC。GC是对内存空间的自动释放,那我们首先说说如果对内存空间管理和分配。原创 2021-01-23 22:44:53 · 3008 阅读 · 0 评论 -
Apache Thrift网络栈
thrift 网络栈英文原版:https://thrift.apache.org/docs/concepts.html1、thrift 网络栈的简单表示(包括以下四层)serverprocessorprotocoltransport+-------------------------------------------+ | Server | | (single-threaded, event-driven et...原创 2020-12-08 22:37:54 · 196 阅读 · 0 评论 -
nvidia-docker的一次实际应用
在深度学习中,如果要使docker中的代码能够在GPU的环境下运行,需要安装nvidia-docker。nvidia-docker是一个可以是用GPU的docker,其在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker上,其最终实现还是在docker的启动命令上携带一些必要的参数,因此在安装nvidia-docker之前,还是需要安装docker的。...原创 2019-08-29 18:32:26 · 3938 阅读 · 0 评论 -
Tornado的高性能服务器开发常用方法
高性能源于Tornado基于Epoll(unix为kqueue)的异步网络IO。因为tornado的单线程机制,一不小心就容易写出阻塞服务[block]的代码。不但没有性能提高,反而会让性能急剧下降。因此,探索tornado的异步使用方式很有必要。简而言之,Tornado的异步包括两个方面,异步服务端和异步客户端。无论服务端和客户端,具体的异步模型又可以分为回调[callback]和协程[co...原创 2020-03-01 14:05:19 · 746 阅读 · 0 评论 -
Jmeter实用总结1
最近在对项目做压力测试的时候用到了jmeter,一开始查了很多资料,但总是有问题,但最终发现是一个小问题引起的。特此总结一下,以便后来人少出现问题。1、背景:开发了一个服务端有个接口暂时记为如下:http://IP:PORT/router服务端接受一个图片并作为输入调用AI算法,并识别结果,然后返回。2、配置:在配置jmeter的时候主流的配置,简单的描述一下:2.1、...原创 2020-02-18 16:21:11 · 310 阅读 · 0 评论 -
Docker的一次完整使用总结
最近在项目中存在这么一个需求,就是对深度学习的一些代码要大规模部署,但是依赖一些环境和显卡驱动,所以考虑将代码和所需要的环境打包成docker镜像来方便部署,经过了一两周的学习和实验以及请教他人,目前我算是基本搞明白了一些,先主要总结一些容易出错的点或者疑惑的点。1、制作Dockerfile在制作Dockerfile的过程中,用到了一些指令:FROM、ENV、COPY、ADD、CMD、...原创 2019-08-29 18:29:19 · 359 阅读 · 0 评论 -
select poll epoll系统调用详细分析
1、select,poll,epoll都是多路复用IO的函数,简单说就是在一个线程里,可以同时处理多个文件描述符的读写。select/poll的实现很类似,epoll是从select/poll扩展而来,主要是为了解决select/poll天生的缺陷。epoll在内核版本2.6以上才出现的新的函数,而他们在linux内核中的实现都是十分相似。这三种函数都需要设备驱动提供poll回调函原创 2016-07-02 11:39:16 · 1841 阅读 · 0 评论 -
EPOLL的用法和模型
1、epoll的用法既然epoll是一种IO多路复用技术,也就是管理大量的描述符的,那么这种机制既可以使用在服务端也可以使用在客户端。而在这两种使用方式下可能会有一些差距,但是差距并不大,毕竟作用是相同的。首先说一下epoll中常用的几个函数:int epfd = epoll_create(int size); 这个函数用于创建一个epoll描述符,同时他会创建红黑树原创 2016-05-28 16:45:38 · 601 阅读 · 0 评论 -
EPOLL的理解和深入分析
搞Linux 服务器开发的人肯定了解 select、poll、epoll,他们都是基于事件驱动的IO多路复用技术,而他们之间的区别网上已经有很多的文章了,大家可以去详细的阅读,我在这里主要想写写我对epoll的底层实现的理解。首先还是先说说 select、poll相比与epoll来说他们效率低下的原因吧:select、poll、epoll是Linux平台下的IO多路复用技术,适合用来...原创 2016-05-11 16:44:30 · 10832 阅读 · 10 评论