我有一些大文件(从几千兆字节到几千千兆字节),我正在搜索并试图找到给定字符串的每一个出现.
我一直在考虑让它并行运行并有一些问题.
我该怎么做?我不能将整个文件复制到内存中,因为它太大了.多个FILE*指针会起作用吗?
在磁盘带宽成为限制因素之前,我可以在文件上放多少个线程,而不是CPU?我该如何解决这个问题?
目前,我在想的是我将使用4个线程,每个都使用FILE*以0%,25%,50%和75%的方式通过文件,并将每个结果保存到文件或内存,然后收集结果作为最后一步.虽然采用这种方法,但根据带宽,我可以轻松添加更多线程,并可能获得更大的加速.
你怎么看?
编辑:当我说内存带宽时,我实际上是指磁盘I/O. 对于那个很抱歉.
我想在shell(或perl)脚本中仅获取MAN页面的特定部分并打印它.
例如:仅MAN页面的SYNOPSIS部分
有没有标准的方法呢?
此致,阿南丹
对于我正在开发的游戏,我从其中一个触摸处理程序中调用了一种昂贵的方法.为了使它更快,我决定使用performSelectorInBackgroundThread,所以而不是:
[gameModel processPendingNotifications];
Run Code Online (Sandbox Code Playgroud)
我切换到:
[gameModel performSelectorInBackground:@selector(processPendingNotifications) withObject:nil];
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个问题是processPendingNotifications没有NSRunLoop,所以我添加了它,就像这样:
- (void)processPendingNotifications {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[pendingNotificationsQueue makeObjectsPerformSelector:@selector(main)];
[pendingNotificationsQueue removeAllObjects];
[pool drain];
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我的问题是从这个后台线程调用的一些方法创建了新NSTimer实例.这些情况最终没有解雇.我认为这是因为我所拥有的辅助线程没有(或正在结束它)NSRunLoop.我正在使用以下方式启动新计时器:
[NSTimer scheduledTimerWithTimeInterval:20.0 target:self selector:@selector(timerFired) userInfo:nil repeats:NO];
Run Code Online (Sandbox Code Playgroud)
我的问题是:
NSRunLoop?有关?NSTimer从后台线程启动并将其附加到主线程NSRunLoop?是否有任何工具可以检查asp.net或sql server并报告针对数据库运行的所有查询?我问的原因是我正在使用Linq进行项目,并希望仔细检查它对每个页面的实际操作.
理想情况下,我想在浏览器中查看页面并报告为创建该页面而运行的所有查询.
我知道我可以使用调试/断点来查看它为单个查询运行的SQL,而且我知道LinqPad,但我担心Linq会自己做几个查询来获取我可能不会直接知道的相关数据.有什么(工具/程序/报告/等)像我描述的那样吗?谢谢!
编辑:有没有可以做到这一点的免费工具?我使用的是Sql Server 2008 Express,但遗憾的是没有SQL Profiler.
我们使用EngineYard Cloud来部署我们的Ruby on Rails应用程序.我们正在运行Rails v2.3.3.
EngineYard Cloud以类似于Capistrano的方式部署到AWS实例.每次部署后,我们都会遇到无效的真实性令牌错误.具体而言,任何先前访问过我们的应用程序然后在部署后访问然后尝试提交表单的用户都会收到无效的真实性令牌错误.在重置网站的Cookie之前,此错误仍然存在.重置Cookie后,该网站按预期工作,没有任何错误.
我们正在使用ActiveRecord的会话存储,会话正在保存到数据库中.
这是我们看到的错误:
ActionController :: InvalidAuthenticityToken /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/request_forgery_protection.rb:79:in`verify_authenticity_token'
部署后会话对象为nil,但会话数据仍然存在于数据库中,并且会话ID cookie仍然存在:
会议:
- 会话ID:无
- 数据:无
我们无法解释这一点.关于什么可能是根本原因的任何想法?
谢谢你的任何建议!
编辑:为了更新这个,我们已经能够找出错误的一个例子.
1)用户加载表单2)代码在服务器上更新3)用户提交表单**发生无效的真实性令牌错误
似乎当环境发生变化时,Rails无法使用真实性令牌处理此问题.
我们已经尝试了几个步骤来解决:
什么都行不通.唯一有效的方法是让用户清除客户端的cookie.
(我们一直在谷歌搜索(甚至试过Binging!)寻找答案,但没有骰子.这似乎是一个类似的相关问题:http://railsforum.com/viewtopic.php?id = 21479 )
另外:最初我们认为这与我们对EngineYard的部署是隔离的,但我们也能够在我们通过Capistrano部署的开发服务器上重现它.
任何想法都会被感激地接受.
谢谢!
我正在尝试在我们的64位服务器上启动并运行一个新的DotNetNuke站点,我遇到以下错误消息:
"'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册"
我从经验中知道,当您在64位计算机上定位64位程序集时(当前没有64位OLE-DB提供程序),您会遇到此问题.在这种情况下,我只是在Visual Studio中定位x86,一切正常.
但在这种情况下,该站点使用动态编译,因此没有简单的地方来指定我需要定位x86.有什么想法吗?
TIA.
这可能是如此简单但仍然无法使它工作我正在使用此声明:
echo "$num1"."+"."$num2"."=".$num1+$num2."<BR>";
Run Code Online (Sandbox Code Playgroud)
我期待3 + 3 = 6之类的东西,但我只得到6
任何想法为什么?
我知道==比较两个时有一些问题Strings.这似乎String.equals()是一种更好的方法.好吧,我正在进行JUnit测试,我倾向于使用assertEquals(str1, str2).这是断言两个字符串包含相同内容的可靠方法吗?我会使用assertTrue(str1.equals(str2)),但是你没有得到看到失败的预期和实际值的好处.
在相关的说明中,是否有人有一个页面或线程的链接,明确地解释了问题str1 == str2?
实现网页计数器的好方法是什么?
从表面上看,这是一个简单的问题,但在处理搜索引擎抓取工具和机器人时,同一用户多次点击,刷新点击时会出现问题.
具体来说,确保链接不仅仅是用户通过反复点击"点击"的好方法是什么?IP地址?饼干?这两个都有一些缺点(IP地址不一定是唯一的,可以关闭cookie).
另外,存储数据的最佳方法是什么?单独增加计数器或将每次单击存储为日志表中的记录,然后偶尔进行汇总.
任何现场体验都会有所帮助,
+++瑞克---
我有一个Web应用程序,用户需要上传.zip文件.在服务器端,我正在检查上传文件的mime类型,以确保它是application/x-zip-compressed或application/zip.
在Firefox和IE上,这对我来说很好.然而,当一个同事测试它时,它在Firefox上失败了(发送mime类型就像是" application/octet-stream")但是在Internet Explorer上工作.我们的设置似乎是相同的:IE8,FF 3.5.1禁用所有附加组件,Win XP SP3,WinRAR安装为本机.zip文件处理程序(不确定是否相关).
所以我的问题是:浏览器如何确定要发送的mime类型?
请注意:我知道mime类型是由浏览器发送的,因此不可靠.我只是检查它是为了方便 - 主要是为了给出一个比你通过尝试打开非zip文件作为zip文件获得的更友好的错误消息,并避免加载(可能是沉重的)zip文件库.
asp.net ×2
64-bit ×1
browser ×1
c ×1
c++ ×1
counter ×1
deployment ×1
dotnetnuke ×1
echo ×1
file-io ×1
forms ×1
iphone ×1
java ×1
junit ×1
junit4 ×1
linq-to-sql ×1
manual ×1
mime-types ×1
objective-c ×1
oledb ×1
php ×1
reporting ×1
ruby ×1
sql ×1
sql-server ×1
string ×1
webforms ×1