Cynric 的博客

修身齐家治国平天下 格物致知诚意正己心

每天进步一点点——Linux中的文件描述符与打开文件之间的关系

快速理解文件描述符与进程打开文件之间的关系

2014-08-31 22:53:26

阅读数 85976

评论数 15

每天进步一点点——论fork()函数与Linux中的多线程编程

fork()函数的调用会导致在子进程中除调用线程外的其它线程全都终止执行并消失,因此在多线程的情况下会导致死锁和内存泄露的情况。在进行多线程编程的时候尽量避免fork()的调用,同时在程序在进入main函数之前应避免创建线程,因为这会影响到全局对象的安全初始化。

2014-05-28 10:49:52

阅读数 33840

评论数 2

每天进步一点点——Linux中的线程局部存储(二)

Linux C/C++多线程编程中请善用__thread

2014-05-24 22:51:42

阅读数 7628

评论数 0

每天进步一点点——Linux中的线程局部存储(一)

在Linux系统中使用C/C++进行多线程编程时有些数据无需使用锁即可做到快速高效,本文从线程局部存储出发讨论如何高效的实现无锁编程。

2014-05-21 14:25:21

阅读数 24909

评论数 3

每天进步一点点——Linux系统中的时间处理

在程序中时间处理往往是一个麻烦的事,Linux系统提供了很多关于时间处理的函数,我们可以用这些函数来完成我们所需要的功能。本文详细讲解在C/C++开发过程中常用的时间处理函数。

2014-05-14 23:17:46

阅读数 7610

评论数 0

每天进步一点点——分布式文件系统下的本地缓存

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都...

2014-04-17 23:13:26

阅读数 19105

评论数 10

每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)

五分钟让你深入了解分布式系统中常用的一致性哈希算法

2014-04-11 00:21:03

阅读数 416683

评论数 120

每天进步一点点——分布式集群管理

现在很多互联网科技公司,还有一些传统的it公司都在根据自身的业务发展来设计符合实情的分布式系统。虽然,已有很多优秀的开源分布式系统,但是由于需求不同,业务不同,这些只能在设计符合自身需求的分布式系统时用于参考。个人认为,设计一个分布式存储系统并不是太难,主要困难在于如何设计并实现一个可以自动化处理...

2014-03-14 23:53:05

阅读数 12815

评论数 3

每天进步一点点——Linux下的磁盘缓存

前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入磁盘中,这样写入效率有太低了。为了弄明白Linux系统的这种磁盘写入特性,最近深入的学习了一下。 ...

2014-03-12 23:29:37

阅读数 19727

评论数 3

每天进步一点点——leveldb项目实践

leveldb是Google公司开源的高性能Key-Value数据库,在很多开源的项目中就有使用,例如:Chromium,淘宝的Tair,SSDB等。leveldb对于小数据在写入百万个之后读写性能依旧强劲,高效,因此非常适合用于存储小文件,以及一些需要持久化的索引和需要持久化的异步任务。    ...

2014-03-08 00:48:35

阅读数 20667

评论数 2

每天进步一点点——Swift项目实践

于2012年3月份开始接触OpenStack项目,刚开始之处主要是与同事合作共同部署公司内部的云平台,使得公司内部服务器能更好的得到资源利用。在部署的过程中遇到各种从未遇到过的问题,即使是按照官方文档一步一步的操作,由于某些硬件的不同,也会产生一些莫名其妙的问题,不是数据库因为配置不妥导致无法连接...

2014-02-25 15:45:03

阅读数 13064

评论数 1

每天进步一点点——swift对象副本修复之简单理解

一直以来都在使用openstack的swift来做分布式存储,至于为什么使用其来做存储在这里就不说明(网上搜搜其的优点就知道了), 随着项目的步步深入,越来越多的问题也随之而来。在项目进行的过程中对swift的理解也越来越多,swift的核心代码行并不是太多,而且也十分容易理解。下面通过实验来理解...

2013-10-18 11:26:26

阅读数 11987

评论数 10

C++ Pirate: Lambda vs Bind

Lambda 与 Bind的性能比较 先让我们看看下面函数: template void do_test_loop(Function func, const uint64_t upper_limit = 1000000000ULL) { for (uint64_t i = 0; i ...

2013-07-19 13:49:32

阅读数 3152

评论数 1

atomic, spinlock and mutex性能比较

atomic, spinlock and mutex性能比较 转载请说明出处:http://blog.csdn.net/cywosp/article/details/8987593 我非常好奇于不同同步原理的性能,于是对atomic, spinlock和mutex做了如下实验来比较: 1. ...

2013-05-29 08:57:07

阅读数 10502

评论数 1

Linux中用C++通过管道来获取命令行输出的内容

Linux中用C++通过管道来获取命令行输出的内容 转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980898     使用C++时,有些时候我们可以通过管道的方法来获取所执行的命令所输出的内容。具体做法如下:     首先你需要确...

2013-05-27 17:27:07

阅读数 7992

评论数 2

整数类型转换成string的几种方法

整数类型转换成string的几种方法     转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980633     最近遇到了要将整数类型转化成string的问题,网上搜罗了一下,总结了几种方法。如下: 方法一: templ...

2013-05-27 16:50:51

阅读数 13160

评论数 0

C++11 多线程中的call once

转贴请说明出处:http://blog.csdn.net/cywosp/article/details/8968655     在多线程的环境下,有些时候我们不需要某给函数被调用多次或者某些变量被初始化多次,它们仅仅只需要被调用一次或者初始化一次即可。很多时候我们为了初始化某些数据会写出如下代码...

2013-05-24 10:31:31

阅读数 9146

评论数 0

C++ STL相关容器详解

vector: 一种随机访问的数组类型,他提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除 操作。它在需要时可以改变其大小,也就是说大小可变的向量,比较灵活。可取代C++语言本身提供的传统数组。提 供随机存储能力。操作尾端元素的速度最快。由于所有元素占用连续空间,所以一...

2012-03-14 17:49:38

阅读数 3134

评论数 0

C++ string 字符串的下标和子串函数

可以用assign()函数来设置字符串的元素,也可以用下标运算符[]和成员函数at()来检索字符串中的某个字符 或修改字符串中的某个字符。     assign()函数的主要语法如下所示:     //将str的内容赋值给string对象     string& assign ( ...

2012-02-22 00:08:02

阅读数 13815

评论数 0

C++ string类中的字符串查找

C++ string类中的字符串查找     类string提供了大量查找功能和搜索功能,其中比较常用的查找和搜索函数是find()函数、 find_first_not_of()函数、find_first_of()函数、find_last_not_of()函数、find_last_of...

2012-02-21 17:20:10

阅读数 98760

评论数 0

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