摘要: 最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它。 编写服务器时,许多程序员习惯于使用高层次的组件、中间件(例如OO(面向对象)层层封装过的开源组件),相比于服务器的运行效率而言,他们更关注程序开发的效率,追求更快的完成项目功能点、希望应用代码完全不关心通 阅读全文
posted @ 2018-09-05 16:28 张丽心 阅读(411) 评论(0) 推荐(0)
摘要: 在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字。操作TCP协议发送数据时,面对的是数据流。通常调用诸如send或者write方法来发送数据到另一台主机,那么,调用这样的方法时,在操作系统内核中发生了什么事情呢?我们带着以下3个问题来细细分析:发送方法成功返回时,能保证TCP另 阅读全文
posted @ 2018-09-05 16:26 张丽心 阅读(553) 评论(0) 推荐(0)
摘要: 搭建cms内容站点时,wordpress是一个很好的选择,不用做任何开发就可以通过配置、插件获得丰富的功能。用docker容器技术部署运维都非常简单,特别是对于wordpress这种我们无需做任何开发的组件。而出于低成本考虑,公有云都是一个最佳选择,这里我选择阿里云。为了提速,wordpress前会 阅读全文
posted @ 2018-09-05 16:25 张丽心 阅读(753) 评论(0) 推荐(0)
摘要: 04年时维护的第一个商业服务就用了两次fork产生守护进程的做法,前两天在网上看到许多帖子以及一些unix书籍,认为一次fork后产生守护进程足够了,各有道理吧,不过多了一次fork到底是出于什么目的呢? 进程也就是task,看看内核里维护进程的数据结构task_struct,这里有两个成员: 看看 阅读全文
posted @ 2018-09-05 16:21 张丽心 阅读(508) 评论(0) 推荐(0)
摘要: 先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改了文件内容,上传到SERVER上(记为File.2)。客户端A这时试图向服务器SERVER更新文件到最新内容,也就是File.1更新为Fil 阅读全文
posted @ 2018-09-05 16:19 张丽心 阅读(151) 评论(0) 推荐(0)
摘要: django是一套开发成本低、迭代周期快的python web框架,而如mysql等关系数据库则是网站的必备组件,django通过设计一套python对象与数据库表的映射系统ORM,使得开发者不用写一行SQL语句就能实现极其复杂的关系数据库操作,特别是关联多张表的SQL操作。这让开发者的精力可以放在 阅读全文
posted @ 2018-09-05 16:17 张丽心 阅读(461) 评论(0) 推荐(0)
摘要: 市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。 是这样吗?设计模式的概念是从建筑领域引入的,本身从没歧视过面向过程编程语言,它只是对一类问题的普遍解决方案而已。面向对象语言因为有类、多态等特点,使得开发者们 阅读全文
posted @ 2018-09-05 16:16 张丽心 阅读(1015) 评论(0) 推荐(0)
摘要: google mock是用来配合google test对C++项目做单元测试的。它依赖于googletest(参见我上篇文章《如何用googletest写单元测试》:?http://blog.csdn.net/russell_tao/article/details/7333226),下面我来说说li 阅读全文
posted @ 2018-09-05 16:14 张丽心 阅读(1145) 评论(0) 推荐(0)
摘要: 最近两年C用得多了,C++有些生疏,又常常用PYTHON,或者阅读些JAVA的代码,感觉C的开发者们由于C语言在软件工程上的先天缺陷,导致开发效率不高,所以决定拿出C++来看看用用,准备把libevent封装出一个类ACE的C++实现,首先来复读下C++对象模型吧。要了解new一个object的成本 阅读全文
posted @ 2018-09-05 16:11 张丽心 阅读(162) 评论(0) 推荐(0)
摘要: 在深度学习出现后,人脸识别技术才真正有了可用性。这是因为之前的机器学习技术中,难以从图片中取出合适的特征值。轮廓?颜色?眼睛?如此多的面孔,且随着年纪、光线、拍摄角度、气色、表情、化妆、佩饰挂件等等的不同,同一个人的面孔照片在照片象素层面上差别很大,凭借专家们的经验与试错难以取出准确率较高的特征值, 阅读全文
posted @ 2018-09-05 16:06 张丽心 阅读(7157) 评论(0) 推荐(0)
摘要: 最近工作需要开始研究mongoDB,我准备从其源代码角度,对于mongod和mongos服务的架构、sharding策略、replicaset策略、数据同步容灾、索引等机制做一个本质性的了解。其代码约20万行(我研究的是?2.0.6版本源码),本篇先从mongod的启动流程说起,它本是一个多线程程序 阅读全文
posted @ 2018-09-05 15:47 张丽心 阅读(1307) 评论(0) 推荐(0)
摘要: 我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒。这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这个函数做了些什么?内核1ms一次的时钟中断处理真的可以支持tv_usec字段达到微秒精度吗?它的调用 阅读全文
posted @ 2018-09-05 15:46 张丽心 阅读(370) 评论(0) 推荐(0)
摘要: . 背景知识? 如果仅希望了解怎样使用已有的Nginx功能搭建服务器,那么阅读本书不需要什么先决条件。但如果希望通过阅读本书的第二、第三部分,来学习Nginx的模块开发和架构设计技巧,则必须了解C语言的基本语法。在阅读本书第三部分时,需要读者对TCP有一个基本的了解,同时对Linux操作系统也应该有 阅读全文
posted @ 2018-09-05 15:44 张丽心 阅读(3804) 评论(0) 推荐(0)
摘要: 当无法穷举遍历出所有的解集时,智能算法就登场了。 ? 好像术语太多了,举个例子吧。六度空间理论说,你和任何一个陌生人,只要通过六个人就可以认识。比如,你认识A,A认识B,B认识C,等等,最多中间通过六个朋友,你就可以找到那位陌生人。这个神奇的理论是Stanley Milgram在1967年提出的,现 阅读全文
posted @ 2018-09-05 15:43 张丽心 阅读(931) 评论(0) 推荐(0)
摘要: googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。 本文包括以下几部分:1、获取并编译googletest(以下简称为gtest);2、如何编写单元测试用例;3 阅读全文
posted @ 2018-09-05 15:42 张丽心 阅读(2181) 评论(0) 推荐(0)
摘要: 1、区块链技术是一个解决了拜占庭将军(百度百科拜占庭将军问题)节点的分布式数据系统!这是它最大的不同,也导致了这个技术存在诸多限制。 为了方便理解,先插个话题。做服务器端开发的程序员,都对zookeeper不陌生,我们解决分布式ACP问题时,寻找一致性解决方案时都会想到它。zookeeper实际使用 阅读全文
posted @ 2018-09-05 15:41 张丽心 阅读(325) 评论(0) 推荐(0)
摘要: hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进 阅读全文
posted @ 2018-09-05 15:40 张丽心 阅读(1258) 评论(0) 推荐(0)
摘要: 本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装 阅读全文
posted @ 2018-09-05 15:39 张丽心 阅读(1026) 评论(0) 推荐(0)
摘要: 前端与后端的思维专注点很不相同,前端聚焦在如何把内容以可视化的方式展现给用户,后端聚焦在如何利用IT基础设施实现业务逻辑。所以前端参与后端开发时(全栈工程师必备!)首先需要理解后端会做哪些事,其次才是如何才能做好这些事。 所谓“利用IT基础设施实现业务逻辑”,意味着以下几个概念: IT基础设施有哪些 阅读全文
posted @ 2018-09-05 15:38 张丽心 阅读(345) 评论(0) 推荐(0)