`
weiyuhu
  • 浏览: 231496 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
/*------------------------------------------------------------------------- * tpool.h – 线程池定义 * ------------------------------------------------------------------------- */ #ifndef _TPOOL_H_ #define _TPOOL_H_ #include  <stdio.h> #include  <pthread.h> /*工作线程链表*/ typedef struct tpool_work{ ...
本文描述在网上能够找到的最简单,最快速的哈夫曼编码。本方法不使用任何扩展动态库,比如STL或者组件。只使用简单的C函数,比如:memset,memmove,qsort,malloc,realloc和memcpy。 因此,大家都会发现,理解甚至修改这个编码都是很容易的。 背景 哈夫曼压缩是个无损的压缩算法,一般用来压缩文本和程序文件。哈夫曼压缩属于可变代码长度算法一族。意思是个体符号(例如,文本文件中的字符)用一个特定长度的位序列替代。因此,在文件中出现频率高的符号,使用短的位序列,而那些很少出现的符号,则用较长的位序列。 编码使用 我用简单的C函数写这个编码是为了让它在任何地方使用都会比较方便。 ...
一直赞叹Sun对待技术的严谨和优雅(bless Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇 ...
http://hi.baidu.com/%5F%E2%64%5F%B7%B3%5F%DE%B2%C2%D2/blog/item/32b9cecab44c4b8cc8176851.html
进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数消耗掉了大部分执行时间,这通常都不是非常明显的。在本文中我们将学习如何使用 gprof 为 Linux ®™ 平台上的用户空间和系统调用精确分析性能瓶颈。 ...
atoi函数不同平台的实现问题     工程中要通过文件得到数值,想当然的就使用了atoi这个函数。在 Windows下使用,没什么问题。但是一移植到Linux下,问题就出来了, 发现得到的数总是不对劲。用gdb跟踪一下,发现大于2147483647的数 均返回2147483647这个值。又在Windows下debug了一下,发现得到的数 值正常,能够得到大于2147483647的数。     这就比较有趣了,2147483647十六进制表示是0x7FFFFFFF。应该是 越界问题。查了一些资料,发现gcc在实现atoi函数的时候,如果输入 的字符串数值大于int型最大值将返回INT_MAX( ...
最近在做的一个项目中要实现字母大小写无关比较,很自然的使用标准c库中的函数 tolower(),但是由于使用次数很多,对输入的字符数组每个都要使用一次,经过性能测 试,发现使用tolower函数的性能只有不使用该函数的的三分之一。     察看了一下tolower函数的源码,发现其对MT有加锁互斥操作,而做的项目正后生成 的是MT库,因此性能上会有问题。因此参考tolower函数,写了一个宏,定义如下:     #define MYTOLOWER(c)  (c>='A'&&c<='Z' ? c+32:c) 用该宏来代替tolower函数,测试后发现果然使性能提高了,但 ...
/*这是修改后的代码,VC下读ID3v2 & ID3v1 , 读mp3_tagHeader都没问题.*/ /****************************************************************** File : mp3info.c *******************************************************************************/ #include<stdio.h> #include<io.h> #include<string.h> #inclu ...
今天突发奇想,就在以前音频播放器(详细情况请看这里——http://blog.csdn.net/baymoon/archive/2006/11 /16/1388693.aspx)的基础上用ffmpeg写了个简单的多媒体播放器,这里把源代码贴出来,供大家参评;这里的多媒体播放,并没有用到什么很强大的音视频同步技术,而只是简单的使用了视频随着音频同步,想必你看了代码之后会有所悟的。。。不多说了,看代码。。。 /*************************************************************************** * ma ...
ffmpeg提取音频播放器总结; 一:简介 从编写音频播放器代码到完成播放器编写,测试,整整5天的时间,这时间还不算之前对 ffmpeg熟悉的时间,可以说是历经千辛万苦,终于搞出来了,虽然最终效果还不是很理想,但是已经可以 ...
C++代码优化方法总结 优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。 一. 优化之前 在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里。然而当你做这件事情的时候切忌从一个debug-version进行推断,因为debug-version中包含了许多额外的代码。一个debug-version可执行体要比release-version大出 ...
一、什么是互斥锁        另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。        互斥量函数有        pthread_mutex_init 初始化一个互斥量        pthread_mutex_lock 给一个互斥量加锁        pthread_mutex_trylock 加锁,如果失败不阻塞        pthread_mutex_unlock 解锁        可以通过使用pth ...
提高 Linux 上 socket 性能 加速网络应用程序的 4 种方法 developerWorks 文档选项 将打印机的版面设置成横向打印模式 打印本页 将此页作为电子邮件发送 将此页作为电子邮件发送 级别: 中级 M. Tim Jones (mtj@mtjones.com), 资深软件工程师, Emulex 2006 年 2 月 13 日     使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets ...
C语言宏定义技巧(zt) 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H   //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef  unsigned char      boolean;     /* Boolean value type. */ typedef  unsigned long int  uint32;      /* Unsigned 32 bit value */ typedef  unsigned short     ui ...
译文]Smashing The Stack For Fun And Profit 2000年12月20 原作 by Aleph One [email]aleph1@underground.org[/email] 翻译 [email]xuzq@chinasafer.com[/email] www.chinasafer.com '践踏堆栈'[C语言编程] n. 在许多C语言的实现中,有可能通过写入例程 中所声明的数组的结 ...
Global site tag (gtag.js) - Google Analytics