CppExplore

一切像雾像雨又像风

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  25 随笔 :: 0 文章 :: 221 评论 :: 0 Trackbacks
共6页: 1 2 3 4 5 6 
re: C++的流设计很糟糕[未登录] cppexplore 2010-07-06 14:29
@cui
......................惊人的一致............
re: C++的流设计很糟糕[未登录] cppexplore 2010-07-06 14:28
兄弟, 你走远了吧. log4cpp的流使用方式就很好啊,类似如此:

#define SLOG(Level,Event) \
do{ \
std::ostringstream _SLOG_BUF_INTERNAL_; \
_SLOG_BUF_INTERNAL_<<Event; \
printf_log(Level,_SLOG_BUF_INTERNAL_.str().c_str()); \
}while(0)
re: 顺便发个招聘信息 cppexplore 2010-07-02 08:48
请不要发广告到首页, 谢谢配合!
@UustCodeIT
session对象和 网络层的connection对象有一定对应关系的
re: 我心中的好程序员[未登录] cppexplore 2010-06-02 09:08
好的程序员,就一点: 交给他事情你放心.
re: 令人气愤的现象[未登录] cppexplore 2010-05-28 08:56
博主不要生气, 平常心看待
我想他也是无意说的.
@OnTheWay
c++里的线程安全单例应该是典型的双重检测.
文中如此实现的话, 每次调用GetInstatnce都要涉及到加锁操作, 估计没人愿意调用.
@种花得花
是错了. 应该先执行func,再执行状态迁移引起的func.

需要为每个event单独配置一个event func, 当然是这个状态对这个event感兴趣的时候, 对不感兴趣的event, 使用改状态的default_func就可以了.

如果每个状态只要一个事件回调, 那说明这个状态只对一个event感兴趣吧(或者你的多个event应该合并成一个), 这个时候基本不需要状态机,保存一个玫举的状态变量就好了, 这是我的一点看法.
@种花得花
兄弟看的仔细啊.
如果event产生了state切换,也应该先执行对应的func, 再执行exit func啊.

不太明白你的意思. 不过我实际用的状态机的确和文章中的都差异很大,呵呵, 除了整理调试代码外,最大的修改 就是状态切换时, 不马上切换, 先将状态入队列,等func执行完, 再做实际的state切换,不知道你说的是不是这里的问题.
re: 无锁线程通信(1)[未登录] cppexplore 2010-05-06 13:25
如果不考虑线程wait和signal的问题,仅仅是读写问题,不加锁可行,我觉得前提是:
(1)只有两个线程参与,存在point_r 读指针和point_w 写指针 两个变量。
(2)只有读数据线程 写变量point_r , 只有写数据线程 写变量 point_w 。写就是一个变量的写操作只在一个线程内进行,其他线程只读。

原子性操作不能借助语言层面的volatile实现,必须借助基于硬件的基本原语完成。最近常说的lock_free编程,具体实现是spin_lock,基于CAS原语实现,是因为没有借助内核态的锁而著称。

支持 留名
过几天也搞个海报出来 呵呵
re: 网站架构演变体系[未登录] cppexplore 2010-04-16 18:43
好文!
@zhaojx
很高兴你能喜欢我写的内容, :)
@cm
试用了内存池吗? 全局内存池的话效果不理想,至少linux下全局的是跑不过dlmalloc的. 据说windows下很容易跑过它自己的malloc子系统吧, 我没测试过,呵呵.
试试区分对象内存池和线程内存池,观察服务器稳定并发能力是否有提高,响应时间是否有稍许改善,cpu利用率是否平稳? 观察下你服务器在规格性能下,是cpu高还是iowait高, 看看系统瓶颈在哪里?
刚顶错地方了 呵呵. 好文! 期待博主继续
不错 好文!! 期待博主继续
@expter
的确不高,呵呵
现在换成线程独自的定时器了,不再加锁,容器换简单的multimap了
@laohu
"尽量避免pthread_mutex进入竞争态。增大消息队列的大小,可以有效减少竞态条件的出现。 "

前一个句号:减少有人拿到了互斥锁的时候,再有人申请,此时后来者将陷入内核等待。

后一个句号:增大消息队列长度,可以减少pthread_cond_signal的调用频率,该调用总是陷入内核。

“互斥变量的竞争和队列长度有什么相关? ”,没啥关系,上面中间是句号, 你当成逗号了吧,呵呵。
@摇摆胖胖
你是指这篇blog里的图吗?这是甘特图,用GanttProject画的 开源的。
时序图,以前用rose画,现在改startuml了,也是开源的
@neou
看过。
两码事情,8253芯片计时,os里中断处理。
语言层面没有这种机制。
可以用boost 或者自己封装一层屏蔽os差异
智能指针常用的就是线程间传递指针类型数据的时候,导致两个线程不能确定该指针释放的时间点,所以基本上不加锁的智能指针用处不大。
re: 扩充完路径库 cppexplore 2009-09-14 19:22
已经移出首页。
cppblog基本上比较自由,是否发首页由作者自己决定,发的时候最好斟酌下,谢谢!
re: pku 2236 cppexplore 2009-07-14 11:09
博主,这种整篇都是代码的文章 就不要再往首页上发了。全是代码,很少会有人看的,很多人订阅了首页,尽量不要浪费大家的时间。
@大华
莫非是浙江大华的朋友,呵呵
顶!
re: 我的初次尝试[未登录] cppexplore 2009-06-05 13:35
#include <stdio.h>
int main()
{
getchar();
return 0;
}
兄弟,面对现实吧,你不适合上学,赶快找点能做出成绩的行业,开始起步吧。
比如利用你语言上的优势,在两国互通有无,或者复制一个国家的商机到另一个国家,或者为在国外的留学生小团体提供一些服务,常见的就是跨国话务之类的。
我的经历也是如此,也思考过原因:
(1)公司不重技术、重市场。而开发的直接领导也是同样的浮躁心态。
(2)开发团队没有技术积累、没有统一认可的基础架构。
(3)开发人员由于不同的开发经历,各自有自己的基础模块实现、对系统有自己的认知。

改善这个情况,开发人员的角度 也只能是多沟通、互相分享知识、定期分析已有系统的架构、争取能对同类型的应用应该使用的最佳设计达成共识。
根本解决还在领导层对技术的重视,重视基础模块积累、重视对系统框架的探讨分析,重视团队技术上的可持续成长。
re: 那些年,那些事儿。[未登录] cppexplore 2009-05-14 09:40
博主好文采!
来搞技术,可惜了。
Ogre + C++吧 熟悉的话,可以直接进入实质的东西。时间都是浪费在实际的逻辑上,不是单纯的工具上,如果你对工具熟悉。

如果准备时间充足,也可以考虑XNA+.NET,事先增加技术预研阶段,写预研文档,扫平技术上的障碍,之后再进入实际的开发。
@蛙蛙
不同的应用有不同的需求。我的应用 瓶颈不在这里,在网络带宽。
一切以应用为导向,呵呵。脱离应用,谈也是空谈。

http短连接,考虑的问题很简单,单纯追逐http连接:
(1)使用好的服务器配置
(2)针对服务器cpu个数配置线程数:2n+1
(3)针对epoll ET模型特点,可读时候直接放到另一个线程的消息队列。

实际的应用,都是由简单的理论扩展而来。

@yshuise
你确信你看懂它的实现了?
.............................
内存检测工具跑一遍就能发现的问题,你还真执着啊。
re: 内存崩溃的BUG (2) [未登录] cppexplore 2009-04-01 10:12
由于内存问题宕掉,堆栈什么的都是不可信的,一定要在初次出现问题的地方找(第一次写内存错误),都到后面了,什么意义都没了。
re: 内存崩溃的BUG (2) [未登录] cppexplore 2009-04-01 10:10
写完代码,需要用内存测试工具跑反复的跑,压力下跑,一遍没跑期望没有任何的内存问题 基本是不可能的。至少至今我开发的服务器,没有一个是写完编译过,就没有任何内存问题的。
@Chuck
发布到首页的 就是要给别人分享的。很多人订阅首页,让别人看不懂或者看了无所收获的文章,也是浪费别人的时间。
如果是给自己看的,不必选择发布到首页。
re: luckyScript测试程序:计算器 cppexplore 2009-03-20 10:57
@陈梓瀚(vczh)
其实我移出首页的出发点,不是因为它没开源,根本原因是我认为不能共享到任何的思想, 没有看到可以分享的东西,当然可能是个人眼界的限制.

总上所述, 如果博主认为本文满足“分享知识给喜欢思考并研究的人”,请重新发布到首页吧. 我个人仍然坚持以前的看法.
@陈梓瀚(vczh)
1 luckyScript并未开源
2 本文展示了用luckyScript写的一个计算器,以及给出运行的结果贴图证明脚本的正确性.
3 博主并未明确说明,是来接受批评的 也未给出需要大家提出意见的方向
4 我的理解blog是分享知识的,尤其是首页精华,订阅首页文章的人 更多的是希望能获取到知识. 如果有疑惑需要大家解答,更好的选择是发布到论坛.
偶尔往首页发个解题报告也无不可 大量的发而又重复的没啥意义吧
是不是可以写的总结啊 算法基础 npc综述之类的发到首页啊
re: luckyScript测试程序:计算器 cppexplore 2009-03-19 09:28
发首页 纯炫耀 鉴定完毕! 移除
顶下!
re: poj 3126 Prim Path 第一道BFS cppexplore 2009-03-08 20:26
已阅 移除
re: POJ 3126 学会广搜队列的用法 cppexplore 2009-03-08 20:25
removed by cppexplore
re: poj 3191解题报告 cppexplore 2009-03-08 20:24
已阅 删之
re: poj 3414解题报告(广搜题) cppexplore 2009-03-08 20:24
已阅 删之
无内容。移除
博主将文章 发往首页精华的 时候 稍微斟酌下 尤其是很多篇一起放上来的时候,没多少时间一篇一篇的审核,多谢。
re: 编辑器近况[未登录] cppexplore 2009-02-26 09:17
博主放到sf上吧,配上英文说明、文档等。有时候99%和100%就是差那么一点额外的努力。
顶博主
多发写相关的东西啊
坐下来慢慢看
共6页: 1 2 3 4 5 6