小编Nic*_*lko的帖子

使用Python编写HDF5文件的最快方法?

给定一个大的(10英寸GB)混合文本/数字的CSV文件,创建具有相同内容的HDF5文件的最快方法是什么,同时保持内存使用合理?

h5py如果可能,我想使用该模块.

在下面的玩具示例中,我发现将数据写入HDF5的速度非常慢且非常快.以10,000行左右的大块写入HDF5是最佳做法吗?或者有更好的方法将大量数据写入此类文件?

import h5py

n = 10000000
f = h5py.File('foo.h5','w')
dset = f.create_dataset('int',(n,),'i')

# this is terribly slow
for i in xrange(n):
  dset[i] = i

# instantaneous
dset[...] = 42
Run Code Online (Sandbox Code Playgroud)

python hdf5 h5py

21
推荐指数
2
解决办法
3万
查看次数

以编程方式获取主机的DNS服务器

使用C++,我想获得主机用于三个操作系统的DNS服务器:OS X,FreeBSD和Windows.我想确认以下方法确实是最佳实践,如果不是,那么这是一种更好的选择.

在此先感谢您的帮助!

c++ dns cross-platform

10
推荐指数
1
解决办法
8416
查看次数

Linux运行时链接器错误

我正在POCO项目网站上的第一步教程,我已经在我的主目录下成功构建了库(Debian Linux,2.6.26,gcc 4.3.2)

~/Development/POCO

共享库位于

~/Development/POCO/lib/Linux/x86_64/lib

我的问题是,我构建的依赖于这些库的任何应用程序只能从共享库目录运行.

~/Development/POCO/lib/Linux/x86_64$ ldd ~/Development/Cloud/DateTimeSample/bin/Linux/x86_64/DateTime
        linux-vdso.so.1 =>  (0x00007fffe69fe000)
        libPocoFoundation.so.6 (0x00007fa8de44f000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007fa8de233000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007fa8de02f000)
        librt.so.1 => /lib/librt.so.1 (0x00007fa8dde26000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fa8ddb1a000)
        libm.so.6 => /lib/libm.so.6 (0x00007fa8dd897000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fa8dd680000)
        libc.so.6 => /lib/libc.so.6 (0x00007fa8dd32d000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa8de7e0000)

从这个目录运行DateTime可以正常工作.然而

~/Development/Cloud/DateTimeSample/bin/Linux/x86_64$ ldd DateTime
        linux-vdso.so.1 =>  (0x00007fff24dfe000)
        libPocoFoundation.so.6 => not found
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007ffc1c7dd000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007ffc1c5d9000)
        librt.so.1 => /lib/librt.so.1 (0x00007ffc1c3d0000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ffc1c0c4000)
        libm.so.6 => /lib/libm.so.6 (0x00007ffc1be41000)
        libgcc_s.so.1 = …

c++ linux linker gcc poco

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

来自boost ::运算符的意外行为

我正在采取boost::operators(铿锵声2.1,提升1.48.0)旋转,并遇到以下无法解释的行为.似乎当我将自己的operator double() const方法添加到我的类中时Ex(因为我希望允许我的用户static_cast<double>()在我的类的实例上惯用),我尝试operator==在不同的类之间使用时不再出现编译器错误.事实上,它似乎operator==根本没有被召唤.

没有operator double() const,该类完全按预期工作(除了它现在缺少转换运算符),并在尝试时收到正确的编译器错误f == h.

那么添加此转换运算符的正确方法是什么?代码如下.

// clang++ -std=c++0x boost-operators-example.cpp -Wall -o ex  
#include <boost/operators.hpp>
#include <iostream>


template <typename T, int N>
class Ex : boost::operators<Ex<T,N>> {
 public:
  Ex(T data) : data_(data) {};
  Ex& operator=(const Ex& rhs) {
    data_ = rhs.data_;
    return *this;
  };
  T get() {
    return data_ * N;
  };
  // the troubling operator double()
  operator double() const { …
Run Code Online (Sandbox Code Playgroud)

c++ boost c++11

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

标签 统计

c++ ×3

boost ×1

c++11 ×1

cross-platform ×1

dns ×1

gcc ×1

h5py ×1

hdf5 ×1

linker ×1

linux ×1

poco ×1

python ×1