共 1,393 篇文章
共 6,621 篇文章及评论
博客分类
Blog Roll
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
Archives
帖子来自 lgg201 
PHP利用共享内存构建计数器完成自增数值id生成 -- 适用于网页游戏携带区服号的数值id生成
作者: lgg201 (1 篇文章) 日期: 十二月 16, 2010 在 7:04 下午
评论 (0)
我们之前的id生成是直接用的php的uniqid 存在的问题有: 1. 高并发下容易重复:当高并发适用uniqid来产生唯一id的时候,我的测试数据是:1000并发,每并发产生1000次,实际输出63万uid(可能是标准输出原因未全部输出),5次重复 2. mysql中使用字符串类型的key存在性能问题 使用这里创建的ud_uniqid带来的改变: 优点1. 高并发重复几率降低:我的测试数据是:1000并发,每并发产生1000次,实际输出93万,无重复 优点2. 使用过程中,可以产生唯一的递增数值id,作为mysql主键有性能优势 缺点1. 性能比uniqid略低,耗时约为uniqid的1.5倍(不过在10e-5 -- 10e-4级别的时间差,1.5倍应该可以忽略) 缺点2. windows不能使用(windows不支持usleep) 缺点3. 由于使用了共享内存,所以需要在服务器开启的时候读取上一次的最大值,服务器关闭的时候写入当前的最大值 下面直接上代码了, ...
