小编Rad*_*nej的帖子

在类中包装int会有什么性能损失吗?

我有一个包含许多矢量,集合和地图的项目.在大多数情况下,键/索引是整数.我正在考虑创建小类,如:

class PhoneRepoIx //index into map {phone_number => pointer}
{
public:
  int n;
};

class PersonIx //index into map {social_security_number => pointer}
{
public:
  int n;
};
Run Code Online (Sandbox Code Playgroud)

我会受到任何速度或记忆惩罚吗?有了内存,我90%确定每个实例没有内存成本,只有每个类型.速度我不清楚.

动机: 通过上述方法,编译器会为我做一些额外的类型检查.此外,通过精心选择的显式类型名称,我的代码的读者将更容易看到我在做什么.到目前为止,我到处使用int,我选择了变量名来表达每个索引.有了上面的内容,我的变量名称可能更短.

注意:Tyepdefs没有完全解决我的问题,因为编译器不会进行任何额外的类型检查,内部所有类型都只是int.

c++

14
推荐指数
1
解决办法
1242
查看次数

win32上的python:如何获得绝对时间/ CPU周期数

我有一个python脚本调用基于USB的数据采集C#dotnet可执行文件.主要的python脚本做了许多其他的事情,例如它控制步进电机.我们想检查各种操作的相对时间,为此目的,dotnet exe生成一个带有来自C#Stopwatch.GetTimestamp()的时间戳的日志,据我所知,它产生与调用win32 API QueryPerformanceCounter()相同的数字.

现在我想从python脚本中获得类似的数字.time.clock()返回这样的值,不幸的是它将第一次调用时获得的值减去time.clock().我怎么能绕过这个?从一些现有的python模块调用QueryPerformanceCounter()是否容易,或者我是否必须在C中编写自己的python扩展?

我忘了提及,Tim Golden的python WMI模块做到了这一点:wmi.WMI().Win32_PerfRawData_PerfOS_System()[0] .Timestamp_PerfTime,但它太慢了,开销大约48ms.我需要一些<= 1ms的开销.time.clock()似乎足够快,就像c#Stopwatch.GetTimestamp()一样.

TIA,Radim

python api winapi performancecounter

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

键值对序列化与 JSON、XML 等

一个天真的问题:与大多数开发人员一样,我定期需要将数据保存到磁盘。几个、几个 10 个或几个 100 个值。大多数人使用 XML,有些人使用 JSON,但我总觉得旧的 ini 文件格式很好

键1=值1

键2=值2

最能满足我的需求。这些文件非常可读,可以轻松地对其进行文本处理,版本控制中的差异工作得很好。

然而,key=value 在序列化中似乎并不是很流行。我是否忽略了什么?

xml serialization json dictionary yaml

3
推荐指数
1
解决办法
7409
查看次数

标签 统计

api ×1

c++ ×1

dictionary ×1

json ×1

performancecounter ×1

python ×1

serialization ×1

winapi ×1

xml ×1

yaml ×1