如果有人能通过以下行为启发我,我会很感激 - 我用一个简短的代码示例捕获了它:
//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) 我想为我的一些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
我正在尝试执行一些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)
如果我只做第一个,那很好,但是一旦我添加其他的,它就会冻结.
我正在编写一个应用程序来处理大量具有深度节点结构的xml文件(> 1000).使用woodstox(Event API)大约需要6秒来解析具有22.000个节点的文件.
该算法被置于具有用户交互的过程中,其中只有几秒的响应时间是可接受的.所以我需要改进如何处理xml文件的策略.
现在我正在考虑一个多线程解决方案(在16核+硬件上可以更好地扩展).我想到了以下国家:
我想同时提高,整体性能和"每个文件"的表现.
你有这方面的经验吗?什么是最好的方式?
从命令行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) 我的函数需要一个列表或一个元组作为参数.它并不关心它是什么,它只是将它传递给另一个接受列表或元组的函数:
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列出来使其工作.但它并不整洁.
有没有更好的方法呢?当然,我不能强迫呼叫者总是传递一个元组,因为它只是转移到他们的工作.
我看到各种各样的线程,他们接受了答案,但我仍然坚持这一点.
我有一个视图,应该启动一个备份过程,我得到它到视图返回的点,并且该过程仍然在后台运行,但是如果重新启动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)
提前致谢.
如何使用Visual Studio 2008在C#中创建Word文件,而不在我的PC上使用Word?
我是否需要在PC上安装Word,才能使用Visual Studio 2008创建Word文件?
提前致谢!
我的解决方案(对于输入块的每一位,都有这样一行):
*parity ^= (((x[0] >> 30) & 0x00000001) * 0xc3e0d69f);
Run Code Online (Sandbox Code Playgroud)
所有类型均为uint32。该行获取输入 x 的第二位,将其移位到 LSB并将所有其他位设置为零。然后,将 32 位奇偶校验与该位的相应奇偶校验集进行异或。
我发现这个乘法解决方案是执行条件异或的最快方法。有更快的方法吗?
python ×4
django ×2
apache ×1
background ×1
c ×1
c# ×1
c++ ×1
coding-style ×1
exec ×1
httpresponse ×1
ios4 ×1
iphone ×1
java ×1
linux ×1
list ×1
ms-word ×1
parity ×1
performance ×1
php ×1
polymorphism ×1
ruby ×1
scp ×1
sockets ×1
ssh ×1
system ×1
tuples ×1
xml ×1
xml-parsing ×1