我希望能够在调试时只跟踪一个线程的执行.我使用线程池,因此调试器不断在线程之间切换,这使得调试非常不舒服.
读:
我得到一个解决方案,它是条件断点(基于线程的名称).但是,我不能说"线程#3"总是处理有趣的情况,所以我必须改变每次执行的条件.太多的工作.
另一个解决方案是使用冻结/解冻功能只使我有趣的线程运行.但是,这会使某些信息不可用,因为所有线程都已暂停.
我现在使用的是让程序运行直到我到达断点,我肯定会在好的线程中.然后我暂停线程池的所有其他线程并尝试恢复执行.如果程序似乎卡住了,我暂停,解冻当前线程.
理想的解决方案是找到正确的线程,标记它然后对Visual Studio说:" 只有当前线程被标记时才会中断 ".
这甚至可能吗?
我试图在我的一个分片集合中找到所有块的大小.
我想知道真正的 大小,而不是作为我知道我可以找到的设置的mongos提示:
use config
db.settings.find({_id : "chunksize"})
Run Code Online (Sandbox Code Playgroud)
我尝试了几种解决方案,但计数操作非常慢,所以这并不容易.你知道解决方案吗?(shell,csharp,python,ruby,bash,我不在乎)
现在我测试了以下内容:
db.getSisterDB("config").chunks.find({ns : "mydb.mycollection"}).forEach(function(chunk) {
db.getSisterDB("mydb").mycollection.find({},{_id : 0, partnerId , 1, id : 1}).min(chunk.min).max(chunk.max).count()
})
Run Code Online (Sandbox Code Playgroud)
但这太慢了,我的印象是它不使用我的分片键上的索引(打开{partnerId : 1, id : 1}).
我也用没有任何运气的解释取代了伯爵.我还用javascript forEach替换了count来手动计数(尝试使用不会命中磁盘的indexOnly查询).
我试图找到真正的大小,因为我已经看到几个块远远高于chunksize给出的提示(2Gb而不是64Mb).
在诸如Haskell的某些语言中,可以使用任何带有两个参数的函数作为中缀运算符。
我觉得这种表示法很有趣,并且希望在红宝石中也能达到同样的效果。
给定一个假想的方法or_if_familiar
,我想能够写类似"omg" or_if_familiar "oh!",而不是or_if_familiar("omg", "oh!")
如何在ruby中创建这样的符号(不修改ruby本身)?