小编Mr *_*ooz的帖子

设置TIME_WAIT TCP

我们正在尝试调整通过TCP接受消息的应用程序,并使用TCP进行一些内部消息传递.在进行负载测试时,我们注意到响应时间显着降低(然后完全停止),因为对系统进行了更多的同时请求.在此期间,我们看到很多TCP连接处于TIME_WAIT状态,有人建议将TIME_WAIT环境变量从默认的60秒降低到30.

我所知,该TIME_WAIT设置实质上设置了在关闭连接后TCP资源再次可用于系统的时间.

我不是一个"网络人",对这些事情知之甚少.我需要很多联系帖子中的内容,但是"笨拙"了一下.

  • 我想我明白为什么这个TIME_WAIT值不能设置为0,但可以安全地设置为5吗?10岁呢?什么决定了这个值的"安全"设置?
  • 为什么这个值的默认值为60?我猜想比我聪明的人有充分的理由选择这个作为合理的默认值.
  • 关于压倒这个价值的潜在风险和好处,我还应该知道什么呢?

tcp network-protocols

66
推荐指数
3
解决办法
11万
查看次数

如何将最后一个命令的挂起时间放入Bash提示符中?

有没有办法在Bash提示符中嵌入最后一个命令的已用时间?我希望有一些看起来像这样的东西:

[last: 0s][/my/dir]$ sleep 10
[last: 10s][/my/dir]$
Run Code Online (Sandbox Code Playgroud)

背景

我经常进行长时间的数据处理工作,知道他们花了多长时间是有用的,所以我可以估计未来的工作需要多长时间.对于非常常规的任务,我会继续使用适当的日志记录技术严格记录这些信息.对于不太正式的任务,我只会在命令前加上time.

自动time每一个交互式命令并将时序信息打印成几个字符而不是三行,这将是很好的.

bash time prompt

60
推荐指数
6
解决办法
9221
查看次数

GCC STL绑定检查

如何启用绑定检查operator[]和迭代器?

c++ gcc stl bounds-checker

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

为什么STL容器没有虚拟析构函数?

有谁知道为什么STL容器没有虚拟析构函数?

据我所知,唯一的好处是:

  • 它通过一个指针(到虚拟方法表)减少实例的大小
  • 它使破坏和构造更快一点.

缺点是以通常的方式对容器进行子类化是不安全的.

编辑: 也许我的问题可以改写"为什么不是STL容器设计允许继承?"

因为它们不支持继承,所以当有人想要一个需要STL功能的新容器加上少量的附加功能时(例如一个专门的构造函数或带有地图默认值的新访问器),就会遇到以下选择:管他呢):

  • 组合和接口复制:创建一个拥有STL容器作为私有成员的新模板或类,并为每个STL方法提供一个传递内联方法.这与继承一样高效,避免了虚方法表的成本(在重要的情况下).不幸的是,STL容器具有相当广泛的接口,因此这需要许多代码行,这看起来应该很容易.
  • 只需创建函数:使用裸(可能是模板化的)文件范围的函数,而不是尝试添加成员函数.在某些方面,这可能是一个很好的方法,但封装的好处将丢失.
  • 具有公共STL访问权限的组合:让STL容器的所有者允许用户访问STL容器本身(可能通过访问者保护).这需要编写库编写器的编码最少,但对用户来说却不太方便.一个用于组成的大卖点之一是,你减少代码耦合,但这种方法完全夫妇与业主容器STL容器(因为业主返回一个真正的STL容器).
  • 编译时多态性:编写可能有些棘手,需要一些代码体操,并不适合所有情况.

作为一个附带问题:是否存在一种使用非虚拟析构函数进行子类化的标准安全方法(让我们假设我不想覆盖任何方法,只是我想添加新方法)?我的印象是,如果没有能力更改定义非虚拟类的代码,则没有通用且安全的方法.

编辑2:

正如@doc所指出的那样,C++ 11的发言人using声明在一定程度上降低了作曲的成本.

c++ destructor stl

31
推荐指数
4
解决办法
7066
查看次数

跟踪变化:svn + latex

在MS Word中,有一个很好的功能称为"轨道更改",允许程序跟踪编辑.这在与他人协作时非常有用,因为您可以启用各种可视化模式,以便轻松查看其他人已更改的内容.

我正在编辑大量用LaTeX编写并存储在subversion存储库中的文档.我希望能够轻松突出不同版本之间的变化.有没有人知道一个好的系统,用于获取一对LaTeX文件的修订版并自动生成单词级别(不仅仅是行级别)差异标记(即一种颜色或样式用于未更改的文本,另一种颜色用于添加内容,另一种用于添加内容删除等)?

svn diff markup latex tracking

14
推荐指数
2
解决办法
3309
查看次数

Windows 11上的iTunes 11脚本

有没有人知道在Windows上通过Python for iTunes 11以编程方式检查播客和创建播放列表的方法?

在iTunes 11之前,可以使用该win32com.client软件包从Python在Windows上编写脚本.虽然在技术上这仍然是可能的,但是iTunes的大部分API已经被iTunes 11删除了.Apple还从其网站上删除了iTunes COM SDK文档,并且win32com.client界面一直依赖于懒惰的方法查找(因此无法检查包装COM对象以获取方法列表或其预期参数).

python itunes itunes-sdk win32com

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

可变长度的物体:永远是个好主意?

我的应用程序使用大量Panda对象.每个Panda都有一个Bamboo对象列表.Panda初始化后,此列表不会更改(不Bamboo添加或删除任何对象).目前,我的课程实现如下:

class Panda
{
    int a;
    int b;
    int _bambooCount;
    Bamboo* _bamboo;

    Panda (int count, Bamboo* bamboo)
    {
        _bambooCount = count;
        _bamboo = new Bamboo[count];

        // ... copy bamboo into the array ...
    }
}
Run Code Online (Sandbox Code Playgroud)

为了减轻分配Bamboo对象数组的开销,我可以按如下方式实现这个类 - 基本上,不是通过常规构造函数创建对象,而是构造方法分配一个内存块来保存Panda对象及其Bamboo数组:

class Panda
{
    int a;
    int b;

    Panda ()
    {
        // ... other initializations here ...
    }

    static Panda *createPanda (int count, Bamboo* bamboo)
    {
        byte* …
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns class-design data-structures

8
推荐指数
3
解决办法
2024
查看次数

平台独立资源管理

我正在寻找一种方法将文本文件嵌入我的二进制文件(如Windows资源系统).我需要一些平台独立的东西(适用于Windows和Linux).我发现Qt资源管理是我需要的,但我并不热衷于我的应用程序,具体取决于Qt.我也在http://www.taniwha.com/~paul/res/找到了这个工具..但它太具体了解平台.

unix linux resources

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

免费安全分布式制作系统的Linux

是否有任何良好的语言无关的分布式系统为Linux安全和免费?

背景资料:

我运行的科学实验(计算机科学实验)有时会有大的依赖树,偶尔会有数千或数万个树节点.此依赖关系树位于数据文件,数据处理可执行文件和结果文件之上.

多年来我一直在尝试各种技术,包括:

  1. 使用数据库滚动我自己的依赖关系跟踪器并在每个工作机器上运行脚本.这可能会有点麻烦,尤其是在尝试使用非脚本语言时.
  2. 将所有处理命令放在单个makefile中,伪目标可以在不同的工作机器上手动"构建".这不需要特殊的工具,但是手动将工作分解为大小均匀的伪目标块并在每个工作箱上正确调用"make"可能会很麻烦.
  3. distmake:自动分配来自单个makefile的命令执行...

我基本上都在寻找像distmake这样的东西,但更安全.据我所知,distmake基本上为每个工作节点留下了一个敞开的后门.

如果替换者比distmake更强大也会很好.如果您突破主要的distmake调用,它可以关闭后门服务器,但它不能正确地终止工作节点上的执行进程.


澄清:

我正在使用makefile处理数据,而不是使用gcc编译和链接.从我在文档中看到的内容来看,distcc是一个用于分发gcc的专用工具.我将在共享文件系统上托管的非常大的数据文件上运行我自己的可执行文件,而不是源文件上的gcc,因此distcc没有帮助.

工作节点是外部可见的机器,因此我希望任何工作器守护程序至少与ssh一样安全.在没有阅读源代码的情况下,我可以告诉他们,distmake工作者守护进程打开一个端口并接受任何附加到它的人的命令.它们将以启动守护程序的用户身份执行命令.

distributed makefile data-processing

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

检测在ipython中以交互方式运行python脚本的时间

有没有办法让python脚本自动检测它是否以交互方式运行?或者,可以检测是否正在使用ipython而不是常规c python可执行文件?

背景:我的python脚本通常会调用exit().我不时地以交互方式运行脚本以进行调试和分析,通常是在ipython中.当我以交互方式运行时,我想要禁止退出的调用.

澄清:

假设我有一个脚本myscript.py,它看起来像:

#!/usr/bin/python
...do useful stuff...
exit(exit_status)
Run Code Online (Sandbox Code Playgroud)

有时,我想在我已经开始的IPython会话中运行脚本,说:

In [nnn]: %run -p -D myscript.pstats myscript.py
Run Code Online (Sandbox Code Playgroud)

在脚本结束时,exit()调用将导致ipython挂起,同时它询问我是否真的要退出.这是调试时的一个小烦恼(对我来说太小而无法照顾),但它可能会弄乱分析结果:退出提示包含在配置文件结果中(如果我在开始午餐前开始分析会话,则分析会更难) .

我想要的是允许我修改我的脚本的东西,它看起来像:

#!/usr/bin/python
...do useful stuff...
if is_python_running_interactively():
    print "The exit_status was %d" % (exit_status,)
else:
    exit(exit_status)
Run Code Online (Sandbox Code Playgroud)

python interactive ipython

7
推荐指数
2
解决办法
2983
查看次数