我需要在我的应用程序中有文本ID.例如,我们有可接受的字符集azAZ09,并允许ID范围[aaa] - [cZ9].首先生成的id是aaa,然后是aab,aac,aad等
如何在交易方式中返回ID并增加下限?(假设有数百个并发请求,并且所有请求都应该有正确的结果)
为了降低负载,我想可以定义20个单独的范围,并从随机范围返回id - 这应该减少争用,但是不清楚如何首先进行单个操作.
另请注意,范围内的ID数量可能超过2 ^ 32.
另一个想法是具有64位整数的范围,并在软件代码中转换integer-> char id,在那里它可以异步完成.
有任何想法吗?
在VS 2010中使用GUI编写(希望本机)C++应用程序的有效方法是什么?
我记得大约10年前我使用过MFC,今天有什么重大变化吗?
我知道现代*nix操作系统允许打开文件,因此数据不会缓存在系统/磁盘写入缓存中,因此任何写入操作只有在数据写入磁盘时才会完成.
你能建议我怎样才能在Perl中做到这一点?
操作系统是AIX/Solaris.
我正在将小程序从 PHP 重写为 C++。这个想法基本上是读取 SSD 上的 32Gb 文件并对其进行一些简单的操作。
我正在使用带有 x64 版本构建的 Visual Studio 2012。PHP 是 5.3 32 位。
问题是 PHP 的裸读速度比 C++ 高,这让我很困惑。PHP 大约为 350 Mb/s,C++/ifstream 代码为 180 Mb/s。
代码非常简单:
ifstream datafile("data.txt", ios::binary);
while(datafile.read((char*)buffer, data_per_chunk)) {
// do stuff;
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的缓冲区大小,最高可达 16Mb,但差别不大。我还尝试通过 datafile.rdbuf()->pubsetbuf(...) 设置内部缓冲区,但它也没有任何区别。
有没有关于如何在不恢复到古老的 C 级接口的情况下加速 ifstream 的提示?我想至少达到 PHP 的性能水平。也许一些花哨的预读/缓存设置或其他东西。
我知道内存映射文件可能会有所帮助,但更愿意调整 ifstream 的设置,如果可以保持简单,因为该文件明显大于物理 RAM 且大于 4Gb,即不适合潜在的 32 位构建.
我正在寻找基于Linux的开源Comet服务器.目前,看看Hookbox - 但是就像在Python中一样,我关注性能.Python而不是C++对性能有很大影响吗?
开发人员估计,当拥有100个频道时,它的性能达到每秒约100个请求...不是很快: - |
你能建议最积极支持/使用的彗星服务器是二进制(=更快),易于集成和(有点)轻量级?此外,Java/.NET不在这里.
我们的目标是每台服务器大约10k +连接,10-20k通道每秒大约2000-5000条消息.
看起来这些关键字在GCC中起作用,而不是C++标准的一部分.
你能说出来,为什么它是海湾合作委员会的一部分,它在哪里记录?