我有大量的数据存储在一个XML文件中,173 MB(460万行),我存储在我的Windows窗体应用程序的工作目录中.它是将数据表写入XML文件的结果.数据表最初是从查询填充到SQL服务器.
我把它存储在本地而不是从服务器请求它的原因是数据请求耗时超过40秒并且有时超时并且数据是静态的并且永远不会改变,而且用户可以离线并且仍然使用数据.
将文件加载回数据表需要20-30秒.我并不太担心从磁盘加载所花费的时间,因为我让用户知道数据正在加载并且耐心等待.但是,我不喜欢XML文件格式,我正在寻找其他磁盘存储的想法.
数据表仅用作集合对象的最终填充的中间人.如果你有吸烟我想听听他们.
我希望远离数据库解决方案,并倾向于二进制文件方法.下面是我的第一次尝试,但我得到一个内存不足异常:
byte[] b = null;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, timeData);
b = stream.ToArray();
}
using (FileStream fileStream = new
FileStream("brad.bin", FileMode.Create, FileAccess.Write))
{
fileStream.Write(b, 0, b.Length);
}
Run Code Online (Sandbox Code Playgroud) 我试图在客户端避免TIME_WAIT.我连接然后设置O_NONBLOCK和SO_REUSEADDR.我调用read直到它返回0.当read返回0时,errno也是0.我将此解释为服务器关闭连接的标志.但是,如果我调用close,则套接字设置为TIME_WAIT,由netstat确认.
由于我与同一主机/端口建立了多个连接,因此我最终开始看到"使用中的地址"错误(请参阅http://hea-www.harvard.edu/~fine/Tech/addrinuse.html).
读取返回0后,我应该关闭吗?如果我不这样,文件描述符将被释放?
我希望能够从RouteCollection生成URL而无需访问HttpContext.查看RouteCollection的实现方式,所有方法都需要访问RequestContext才能获取虚拟路径.
我通过模拟HttpContext解决了这个问题,但这增加了对RhinoMocks的尴尬依赖,并不是一个合理的解决方案.我是否有其他选项可以在上下文之外生成Urls?
作为一个LaTeX新手,我想开始使用它并用我自己的东西扩展它.我对技术写作的解决方案有一些想法,直到现在才解决.所以我需要一本关于LaTeX的好书,从程序员的角度来看它.就像LaTeX如何在内部工作一样,所有东西如何组合在一起,以及我在哪里开始接触代码或添加代码以使工作正常.嗯,你知道我的意思吗?:)
那么我应该看一下好书吗?
我有一个查询,创建几个临时表,然后将数据插入其中.根据我的理解,这是Table Spool的潜在原因.当我查看我的执行计划时,我的大部分处理都花在了Table Spool上.有没有什么好的技术可以改善这些类型的性能问题?使用视图或CTE会为我提供临时表的任何好处吗?
我还注意到,当我将鼠标悬停在每个表假脱机上时,输出列表来自同一个临时表.
我对它很陌生,但知道它无法处理我需要的特殊东西。我想开发 LaTeX 的功能。问题:有一种东西叫做 TeX。然后是乳胶。然后是 KOMA-Script。那么:这三个中的哪一个实际上是驱动所有这些东西的“底层引擎”?
所以我使用以下方法从我的iPhone应用程序中的PHP脚本中获取JSON字符串:
NSURL *baseURL = [NSURL URLWithString:@"test.php"];
NSError *encodeError = [[NSError alloc] init];
NSString *jsonString = [NSString stringWithContentsOfURL:baseURL encoding:NSUTF8StringEncoding error:&encodeError];
NSLog(@"Error: %@", [encodeError localizedDescription]);
NSLog(@"STRING: %@", jsonString);
Run Code Online (Sandbox Code Playgroud)
JSON字符串在测试输出时验证.现在我遇到了编码问题.当我获取单个echo'd行时,例如:
{ "testKey":"é" }
Run Code Online (Sandbox Code Playgroud)
JSON解析器工作正常,我能够创建一个有效的JSON对象.但是,当我获取2MB JSON字符串时,我会看到:
Error: Operation could not be completed. (Cocoa error 261.)
Run Code Online (Sandbox Code Playgroud)
和一个空字符串.我的PHP文件本身是UTF8,我没有使用utf8_encode(),因为这似乎是对数据进行双重编码,因为我已经将数据拉为NSUTF8StringEncoding.无论哪种方式,在我的单回显测试中,这是允许我在构建JSON对象时成功记录\ ASDAS样式UTF8转义的方法.
在较大字符串的情况下可能导致错误的原因是什么?
此外,我不确定它是否有所作为,但我在我解析的php数据上使用php函数addslashes()来计算引号等构建JSON字符串时.
我首先要说的是,使用智能指针,你永远不必担心这一点.
以下代码有什么问题?
Foo * p = new Foo;
// (use p)
delete p;
p = NULL;
Run Code Online (Sandbox Code Playgroud)
这是由另一个问题的回答和评论引发的.Neil Butterworth的一条评论产生了一些赞成:
在删除后将指针设置为NULL不是C++中的通用优良做法.有时候它是一件好事,有时它是毫无意义的,可以隐藏错误.
有很多情况下它无济于事.但根据我的经验,它不会伤害.有人开导我.
我写了一些小的可可应用程序,它的主窗口有HUD风格.问题是 - 当我设置HUD样式时,Interface Builder自动设置实用程序样式 - 这使主窗口最顶层(始终可见于其他所有窗口).有没有办法获得HUD样式面板/窗口,但没有使它最顶层?
我想在某些浏览器(如Firefox和Opera)上关闭包含HTML嵌入代码的textarea中的内置拼写检查功能,以供访问者复制和粘贴.这可以使用以下属性完成:
拼写检查="假"
但是,这会导致XHTML Strict的验证错误.此外,它在Opera中无法正常工作,因为在用户选择文本区域中的嵌入代码后,拼写检查会返回.是否有其他方法可以关闭拼写检查功能?
cocoa ×2
latex ×2
objective-c ×2
.net ×1
asp.net-mvc ×1
c ×1
c# ×1
c++ ×1
httpcontext ×1
iphone ×1
json ×1
macos ×1
networking ×1
nswindow ×1
null ×1
pointers ×1
routing ×1
sql ×1
sql-server ×1
tex ×1
textarea ×1