问题列表 - 第39385页

为什么这个简单的C++类层次结构无法表现出多态行为?

如果有人能通过以下行为启发我,我会很感激 - 我用一个简短的代码示例捕获了它:

//header.h

class base
{
public:
 base(int data):data1(data){}
 virtual int getData(){return data1;}
private:
 int data1;
};

class derived1 :public base
{
public:
 derived1(int data):base(data-1),data2(data){}
 virtual int getData(){return data2;}
private:
 int data2;
};

class derived2 :public derived1
{
public:
 derived2(int data):derived1(data-1),data3(data){}
 virtual int getData(){return data3;}
private:
 int data3;
};


//main.cpp

derived1 d1(20);
derived2 d2(10);

base& baseRefd1 = d1, baseRefd2 = d2; 

cout << "call to baseRefd1.getData() yields: " << baseRefd1.getData();
cout << "call to baseRefd2.getData() yields: " << baseRefd2.getData(); …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism

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

如何在Django中引发410错误

我想为我的一些Django页面返回410错误,而不是返回404.基本上,raise Http404('some error message')我不想打电话,而是打电话给raise Http410('some error message')快捷方式.

我很困惑因为在django.http中,函数Http404很简单:

class Http404(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

所以,如果我做同样的事情并创建我的Http410函数,我会认为它看起来像:

class Http410(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

但是,这样做会返回异常,但会提供500错误页面.如何重新创建Http404异常的魔力?我应该注意,我需要从我的模型(而不是视图)中引发异常,所以我不能只返回一个HttpResponseGone.

提前致谢!

更新:我完全了解HttpResponseGone,并在我原来的问题中提到了这一点.我已经知道如何在我的观点中返回这个.我的问题是:你如何提出一个Http 410异常与你如何引发Http 404异常类似?我希望能够在任何地方提出这个例外,而不仅仅是在我的观点中.谢谢!

python django error-handling httpresponse http-status-code-410

10
推荐指数
3
解决办法
9027
查看次数

同时执行多个Python脚本会导致PHP/Apache挂起

我正在尝试执行一些python脚本,以便在我的网站上操作一些图像.外部程序/工具是用python编写的,称为PHATCH.我在Windows下使用WAMP作为我的Web服务器.

仅执行一个脚本似乎运行良好,但我需要同时执行4个脚本(生成4个不同的图像),我的浏览器将只加载和Apache/PHP冻结.

由于几个system()调用之后,PHP执行似乎冻结并挂起.这是我如何使用它的一个例子:

system("C:\\python\\python.exe C:\\phatch\\phatch.py script1.phatch");
system("C:\\python\\python.exe C:\\phatch\\phatch.py script2.phatch");
system("C:\\python\\python.exe C:\\phatch\\phatch.py script3.phatch");
system("C:\\python\\python.exe C:\\phatch\\phatch.py script4.phatch");
Run Code Online (Sandbox Code Playgroud)

如果我只做第一个,那很好,但是一旦我添加其他的,它就会冻结.

php python system exec

5
推荐指数
0
解决办法
545
查看次数

Java中的并行XML解析

我正在编写一个应用程序来处理大量具有深度节点结构的xml文件(> 1000).使用woodstox(Event API)大约需要6秒来解析具有22.000个节点的文件.

该算法被置于具有用户交互的过程中,其中只有几秒的响应时间是可接受的.所以我需要改进如何处理xml文件的策略.

  1. 我的进程分析xml文件(仅提取几个节点).
  2. 处理提取的节点,并将新结果写入新数据流(生成具有已修改节点的文档的副本).

现在我正在考虑一个多线程解决方案(在16核+硬件上可以更好地扩展).我想到了以下国家:

  1. 创建多个解析器并在xml源上并行运行它们.
  2. 重写我的解析算法thread-save只使用解析器的一个实例(工厂,...)
  3. 将XML源拆分为块并将块分配给多个处理线程(map-reduce xml - serial)
  4. 我的优化算法(更好的StAX解析器比woodstox?)/使用的解析器使用内置的并发

我想同时提高,整体性能和"每个文件"的表现.

你有这方面的经验吗?什么是最好的方式?

java xml parallel-processing multithreading xml-parsing

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

Ruby和Net :: SCP传输(套接字)的性能问题

从命令行scp实用程序的功能来看,SCP上传速度似乎在库中受到很大限制.我知道这是Ruby(1.9.2-p0),但Net :: SCP比Linux实用程序慢大约8倍(使用大文件看到......见下文).我很想知道(我快速查看代码)如果这是Ruby中的套接字,或者是否可以更好地复用Net :: SCP套接字?

我注意到无论我尝试什么样的上传方式(串行上传,异步操作,使用scp对象的多个实例)我都无法在SCP上传时获得超过9兆字节/秒的传输速度.现在......让我解释一下我调查的细节:

1)尝试了不同的加密算法

我使用了不同类型的加密而没有太大的速度变化示例:我可以使用命令行scp(加密算法= arcfour128)提交我的1GB测试文件,并在我的内部千兆位连接上获得73.3兆字节/秒的传输速率.我使用Net :: SCP.upload lib在我的内部千兆位连接上从未超过大约9兆字节/秒.

2)尝试了不同的主机/操作系统

我发现Linux - > Linux上传速度最快.SUA的ssh服务器(Windows)只能为我提供最高13.5兆字节/秒的上传速度(Linux - > Windows,使用arcfour算法w/scp命令行),而Linux - > Linux(使用arcfour,w/scp命令行) )是一个惊人的73.3兆字节/秒.我应该提一下,这些Windows和Linux机器完全相同的型号,硬件等.

3)尝试了不同的SCP上传方法

- >使用2同步上传!电话,一个接一个地完成. - >使用2个异步上传调用,一个接一个地启动 - >使用2个Net :: SCP对象并将文件提交到非阻塞/异步版本的上传(因此它们并行运行)这些不同的方法都没有给予任何显着的性能提升,这有点令人沮丧.

以下是测试结果(为便于阅读而增强了文本,但与提供的代码输出类似):


Net::SCP
Done creating channels
Starting transfer of /home/seth/afpcases/systeme.afp # two upload! calls, one after another
Finished transfer of /home/seth/afpcases/systeme.afp
--> Duration: 126.07707 seconds (8.7168903909331 megabytes/s) should show transfer speed of serial uploads

Starting transfer of /home/seth/afpcases/systeme.afp # two upload calls, one after another, with …
Run Code Online (Sandbox Code Playgroud)

ruby sockets ssh performance scp

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

Python函数参数:tuple/list

我的函数需要一个列表或一个元组作为参数.它并不关心它是什么,它只是将它传递给另一个接受列表或元组的函数:

def func(arg): # arg is tuple or list
  another_func(x)
  # do other stuff here
Run Code Online (Sandbox Code Playgroud)

现在我需要稍微修改一下这个函数来处理一个额外的元素:

def func(arg): #arg is tuple or list
  another_func(x + ['a'])
  # etc
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会起作用:如果arg是元组,我必须说x + ('a',).

显然,我可以通过强制arg列出来使其工作.但它并不整洁.

有没有更好的方法呢?当然,我不能强迫呼叫者总是传递一个元组,因为它只是转移到他们的工作.

python coding-style tuples list

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

从django执行后台进程,不能被Web服务器中断

我看到各种各样的线程,他们接受了答案,但我仍然坚持这一点.

我有一个视图,应该启动一个备份过程,我得到它到视图返回的点,并且该过程仍然在后台运行,但是如果重新启动apache,则备份过程就会消失.

def partStartJob(request):
    import subprocess
    p=subprocess.Popen(['/usr/bin/nohup','/usr/bin/python', '/(somewhere)/scripts/backup/testbackup.py'] )
    # FIXME: This process dies when apache restarts.
Run Code Online (Sandbox Code Playgroud)

提前致谢.

python linux apache django background

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

以编程方式创建MS Word文件,而无需安装MS Word

如何使用Visual Studio 2008在C#中创建Word文件,而不在我的PC上使用Word?

我是否需要在PC上安装Word,才能使用Visual Studio 2008创建Word文件?

提前致谢!

c# ms-word visual-studio-2008

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

6
推荐指数
2
解决办法
3415
查看次数

位运算计算奇偶校验的最快方法是什么?

我的解决方案(对于输入块的每一位,都有这样一行):

*parity ^= (((x[0] >> 30) & 0x00000001) * 0xc3e0d69f);
Run Code Online (Sandbox Code Playgroud)

所有类型均为uint32。该行获取输入 x 的第二位,将其移位到 LSB并将所有其他位设置为零。然后,将 32 位奇偶校验与该位的相应奇偶校验集进行异或。

我发现这个乘法解决方案是执行条件异或的最快方法。有更快的方法吗?

c bit-manipulation parity

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