我有一个通过system()
C命令运行的Perl脚本.在特定站点(SunOS 5.10)上,当运行该脚本时,它几乎总是需要6秒或更长时间.在其他网站上,它几乎立即运行(0.1秒).如果我手动运行脚本,即不是从C代码运行,它也会立即运行.我最终跟踪了缓慢下降(通过在很多不同的地方吐出一大堆的时间)到单行require
.它需要的文件是我们编写的另一个Perl脚本.该脚本包含一个require
(此处为此文件),3个分配了整数值的标量,以及一些时间/日期转换例程.该文件以1;结尾.那个单一的需求似乎有时需要6秒钟,但正如我所说,并不总是在同一台机器上.我绝对难过这里.我唯一的想法是打开分析,但该网站没有Devel :: Profiler,我唯一的其他选项(我知道)将它添加到Perl命令,这将要求我改变并重新编译C代码(可行但非平凡).
有人知道这里会发生什么吗?我不认为我可以/想要把整个date.pl放在需要的地方,但它几乎和我描述的完全一样; 我可以回答你的任何问题.
提前致谢.
我们应该防范来自下拉列表的意外用户输入吗?期望用户以某种方式修改下拉列表以包含最初未包含的值是否合理?
他们怎么能做到这一点,我们怎么能阻止它呢?
好的,所以我有一个页面,它从web服务中获取文件作为Byte [],然后我给用户保存/取消对话框以保存该文件.该文件可以是xml或cvs格式.下载文件时文件不完整,例如文件应该包含的内容:
美元,欧元,欧元,1.2,1.1,11/15/2009,15:23:27
美元,澳元,澳大利亚,1.25,1.15,11/15/2009,15:23:27
但是当从浏览器中保存时它只有::
USD,EUR,Euro,1.2,1.1,11/15/2009,15:23:27
USD,AUD,Australian,1.25, 1.
这是我的代码:
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", MyFile.Length.ToString());
FileInfo file = new FileInfo(fileName);
Response.ContentType = Utility.ReturnExtension(file.Extension.ToLower());
Response.BinaryWrite(MyFile);
Response.Flush();
Response.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)
我已经通过以下代码在我的机器上编写文件来确保我从webservice获得的byte []是可以的:
StreamWriter writer = null;
string blah = System.Text.ASCIIEncoding.ASCII.GetString(MyFile);
writer = File.CreateText(Server.MapPath(filePath+fileName));
writer.Write(blah);
writer.Close();
writer.Dispose();
Run Code Online (Sandbox Code Playgroud)
如果我删除Close()和End(),那么整个文件将使用页面中的一些HTML代码呈现.如果我首先在本地计算机上创建/写入文件然后执行Response.TransmitFile(file),我将获得完整文件(仅XML格式).
我不确定我做错了什么.也许它只是非常简单.任何帮助将不胜感激
我在欢迎屏幕和主屏幕上显示活动指示器.它在欢迎屏幕上工作正常.在主视图中,有一个'for'循环代码,可以执行16次任务.这时,设备看起来有点挂,以避免我想显示活动指示.当我在一些循环(16次)代码进行过程中在主屏幕中添加标准活动代码时,我没有观察到设置活动指示器显示.它只在循环结束后才出现.我在尝试循环代码之前尝试了一些延迟,但在预期的时间内仍未显示.否则用户可能会认为我的应用程序挂起了设备,所以我想在那时显示活动指示器.
欢迎任何解决此问题的建议!
谢谢.
我们from module import function
称之为FMIF编码风格.
我们import module
称之为IM编码风格.
我们from package import module
称之为FPIM编码风格.
为什么IM + FPIM被认为是比FMIF更好的编码风格?(请参阅此帖子以获取此问题的灵感.)
以下是一些让我更喜欢FMIF而非IM的标准:
chisquare(...)
看起来比可读性更强 scipy.stats.stats.chisquare(...)
.虽然这是一个主观标准,但我认为大多数人会同意.
function
从alt_module
不是module
我需要改变只有一条线路:from alt_module import function
.如果我使用IM,我需要更改许多行代码.
我对IM + FPIM可能比FMIF更好的所有原因感兴趣,但特别是,我有兴趣详细说明这里提到的以下几点:
IM的优点:
非常感谢.
我正在使用Google Maps API(v2),并希望将地图上传到一个国家/地区(例如英格兰).
目前我使用以下地图居中:
map.setCenter(new GLatLng( 43.907787,-79.359741), 9);
Run Code Online (Sandbox Code Playgroud)
但这显然需要经度和纬度.
通过插入国家名称的任何方式来做到这一点?
我需要在我的代码中进行一些日志记录.我需要使用公司内部开发的库来记录一些信息.这是它的工作原理.
Recorder recorder = Recorder.StartTiming();
DoSomeWork();
recorder.Stop(); // Writes some diagnostic information.
Run Code Online (Sandbox Code Playgroud)
为了确保始终调用Stop(),我创建了一个包装类,允许使用干净的"使用"块.
using (RecorderWrapper recorderWrapper = new RecorderWrapper) // Automatically calls Recorder.StartTiming() under the covers
{
DoSomeWork();
} // When the recorderWrapper goes out of scope, the 'using' statement calls recorderWrapper.Dispose() automatically - which calls recorder.Stop() under the covers
Run Code Online (Sandbox Code Playgroud)
它到目前为止运作良好.但是,我的公司需要改变,在原始代码上看起来像这样:
Recorder recorder = Recorder.StartTiming();
try
{
DoSomeWork();
}
catch (Exception ex)
{
recorder.ReportFailure(ex); // Write out some exception details associated with this "transaction"
}
recorder.Stop(); // Writes some diagnostic …
Run Code Online (Sandbox Code Playgroud) 我调用一个返回gzip压缩文件的服务.我javax.activation.DataHandler.getInputStream();
从响应中将数据作为InputStream(礼貌).
我想要做的是,在不向磁盘写入任何内容的情况下,在归档文件中的文件中获取解压缩数据的InputStream.在这种情况下,压缩文件是一个xml文档,我试图解组使用javax.xml.bind.Unmarshaller
它来获取InputStream.
我正在尝试将InputStream写入OutputStream(解压缩数据),然后我需要将其写回InputStream.它还没有工作,所以我想我会看看是否有更好的(我希望如此)方法.
我可以将初始InputStream写入磁盘并获取一个gz文件,然后读取该文件,从中获取压缩文件并从那里开始,但我宁愿将其全部保存在内存中也是可能的.
更新1:这是我的当前(不工作 - 得到"不是GZIP格式"的例外):
ByteArrayInputStream xmlInput = null;
try {
InputStream in = dh.getInputStream(); //dh is a javax.activation.DataHandler
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
int bytes_read = 0;
byte[] dataBuf = new byte[4096];
while ((bytes_read = bis.read(dataBuf)) != -1) {
bo.write(dataBuf, 0, bytes_read);
}
ByteArrayInputStream bin = new ByteArrayInputStream(bo.toByteArray());
GZIPInputStream gzipInput = new GZIPInputStream(bin);
ByteArrayOutputStream out = new ByteArrayOutputStream();
dataBuf = new byte[4096];;
bytes_read = 0;
while ((bytes_read = …
Run Code Online (Sandbox Code Playgroud) 如果您已经使用过任何长度的JavaScript,那么您就知道Internet Explorer没有为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数.这不是一个大问题,因为您可以使用以下代码扩展页面上的功能.
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
我什么时候应该实现这个?
我应该使用以下检查将其包装在我的所有页面上,检查是否存在原型函数,如果不存在,请继续并扩展Array原型?
if (!Array.prototype.indexOf) {
// Implement function here
}
Run Code Online (Sandbox Code Playgroud)
或者浏览器检查,如果它是Internet Explorer,那么只需实现它?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Run Code Online (Sandbox Code Playgroud) javascript internet-explorer cross-browser internet-explorer-8
从SQL列读取一些数据然后将其转换为XML时出现此错误:
"System.InvalidOperationException:XML文档中存在错误(182,16).---> System.Xml.XmlException:'',十六进制值0x0B,是无效字符."
很公平,也许数据格式不正确.除了,我怎么能找到罪魁祸首?
SELECT * from Mytable where Column like '%' + char(0x0B)+'%'
Run Code Online (Sandbox Code Playgroud)
返回空.
(显然我尝试了所有%+ char,char,char +%组合,以防万一)
.net ×2
c# ×2
javascript ×2
asp.net ×1
debugging ×1
download ×1
exception ×1
google-api ×1
google-maps ×1
gzip ×1
html ×1
io ×1
iphone ×1
java ×1
performance ×1
perl ×1
python ×1
security ×1
using ×1
vb.net ×1