小编kcw*_*cwu的帖子

如何在构建目标之外生成gcc调试符号?

我知道我可以使用-g选项生成调试符号.但是,符号将嵌入目标文件中.gcc可以在结果可执行文件/库之外生成调试符号吗?像Windows VC++编译器的.pdb文件一样.

debugging gcc pdb-files

167
推荐指数
5
解决办法
9万
查看次数

将删除与基类指针一起使用会导致内存泄漏吗?

给定两个类只有原始数据类型,没有自定义析构函数/解除分配器.C++规范是否保证它将以正确的大小解除分配?

struct A { int foo; };
struct B: public A { int bar[100000]; };
A *a = (A*)new B;
delete a;
Run Code Online (Sandbox Code Playgroud)

我想知道我需要写一个空的virtualdtor吗?

我试过g ++和vc ++ 2008,它们不会导致泄漏.但我想知道C++标准中的正确性.

c++ memory-leaks memory-management

18
推荐指数
2
解决办法
2471
查看次数

高效的算法随机选择频率项目

给定一组n字频对:

[ (w0, f0), (w1, f1), ..., (wn-1, fn-1) ]

在哪里是一个单词,是整数频率,以及频率的总和,wifi∑fi = m

我想使用伪随机数生成器(pRNG)来选择p单词,以便选择任何单词的概率与其频率成正比:wj0, wj1, ..., wjp-1

P(wi = wjk) = P(i = jk) = fi / m

(注意,这是替换选择,因此每次可以选择相同的单词).

到目前为止,我已经提出了三种算法:

  1. 创建一个大小数组m,并填充它以便第一个条目,下一个条目,等等,所以最后的条目是.f0w0f1w …

random algorithm big-o

10
推荐指数
2
解决办法
1914
查看次数

基于样本的FreeBSD分析工具是什么?

我想在FreeBSD上找到像vtune或oprofile这样的分析器.你知道吗?

profiling freebsd

8
推荐指数
1
解决办法
2732
查看次数

在GAE上,我如何根据正确的客户端TimeZone显示日期?

在我的Google App Engine应用程序中,我在我的模型中存储了一个自动更新的日期/时间,如下所示:

class MyModel(db.Model):
   date = db.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

但是,该日期/时间是服务器上的本地时间,根据它的时区.

那么,当我想在我的网页上显示它时,我如何根据客户时区格式化它?

另外,我怎么知道谷歌服务器在哪个时区?

python django timezone google-app-engine

5
推荐指数
1
解决办法
2165
查看次数

用于可变长度记录存储和磁盘查找的数据结构/算法,仅在主键上进行搜索

我正在寻找一种适用于基于大块的设备(例如机械硬盘驱动器)的算法/数据结构,该设备针对插入,获取,更新和删除进行了优化,其中总是使用数据的id和数据来完成搜索任何ID的字段都有可变长度.

B树似乎是一个常见的引用结构,但主要用于固定长度记录.我也期望获得和更新的次数比插入和删除的次数多得多.我可以摆脱B树的O(log m)查找吗?

我很高兴它成为一个组合系统,例如ISAM结合了B树和线性文件存储,看起来它可以作为一种方法使用可变长度记录.还有更好的东西吗?

进一步的限制:

1)ID可能是稀疏的,但可以使它们成为线性数字块 - 但是在大范围内(64位)

2)我不想使用DBMS,性能对于我的特定问题并没有证明是非常好的.我不需要完整DBMS使用的任何操作,我不需要搜索.我需要一些可以轻松调整和优化的东西.称之为学术好奇心,如果它由MySQL执行,那么我将使用它,但我必须尝试更快.

3)数据集大于可以适合内存的数据集,但是如果它像key,offset一样简单,那么索引可能很好地适合内存.我当然在寻找存储中10亿个或更多实体的东西.

4)理想情况下,删除记录时应恢复空间.这可能是通过压缩,但我有兴趣看看是否有更好的方法(例如B树很容易恢复空间).

filesystems algorithm disk data-structures

5
推荐指数
2
解决办法
4625
查看次数

在64位linux上从32位模式切换到64位(长模式)

我的程序是在x86_64 CPU(64位操作系统,ubuntu 8.04)上运行的32位模式.是否可以暂时在用户模式下切换到64位模式(长模式)?如果是这样,怎么样?

背景故事:我正在编写一个与32位模式程序链接的库,因此它必须在启动时为32位模式.但是,我想使用更快的x86_64指令来获得更好的性能.所以我想切换到64位模式做一些纯粹的计算(没有操作系统交互;不需要64位寻址)并在返回调用者之前回到32位.

我发现有一些相关但不同的问题.例如,

我的问题是"在32位程序中运行64位代码,64位操作系统"

linux x86 x86-64 32bit-64bit

5
推荐指数
1
解决办法
2182
查看次数

如何知道Windows上的子进程状态和资源使用情况?

我想写一个程序,它将启动一个子进程.子进程可以是Windows模式或控制台模式程序.

我想监视子进程状态和资源使用情况.例如,我想知道子进程仍在运行或终止.如果它终止,我想知道原因(正常终止或因崩溃?).

在子进程运行和/或终止期间,我想知道它的资源使用情况,特别是CPU时间(用户时间,系统)和内存使用情况(虚拟大小和/或rss).如果数字不是很准确,那就没关系.

在Unix术语中,我想要fork,exec,waitpid和getrusage.而fork + setrusage + exec可以限制孩子的资源使用.但我不知道如何在Windows平台上执行这些操作.

请指出Windows API名称.我自己可以研究其余的.

不希望使用Windows API以外的库.首选它不是父作为调试器工作并附加到子进程.只是不喜欢,但仍然可以接受.

resources winapi process monitor

4
推荐指数
1
解决办法
2015
查看次数