小编Nil*_*ose的帖子

在ravenDB中获取Count进行分页的最佳方法

我需要找到raven数据库中的文档数量,以便我可以正确地将文档分页.我有以下实现 -

public int Getcount<T>()
{
    IQueryable<T> queryable = from p in _session.Query<T>().Customize(x =>x.WaitForNonStaleResultsAsOfLastWrite())
    select p;
    return queryable.Count();
}
Run Code Online (Sandbox Code Playgroud)

但如果计数太大,那么它会超时.

我尝试了常见问题解答中建议的方法 -

    public int GetCount<T>()
    {
        //IQueryable<T> queryable = from p in _session.Query<T>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite())
        //                          select p;
        //return queryable.Count();

        RavenQueryStatistics stats;
        var results = _session.Query<T>()
            .Statistics(out stats);

        return stats.TotalResults;
    }
Run Code Online (Sandbox Code Playgroud)

这总是返回0.

我究竟做错了什么?

ravendb

10
推荐指数
1
解决办法
2299
查看次数

Gmock - 匹配结构

如何为输入参数匹配union中元素的值,例如 - 如果我使用以下符号模拟方法 -

    struct SomeStruct
    {   
        int data1;
        int data2; 
    };

    void SomeMethod(SomeStruct data);
Run Code Online (Sandbox Code Playgroud)

如何在参数中使用正确的值调用此方法的模拟?

c++ gmock

10
推荐指数
4
解决办法
3万
查看次数

RavenDB分页行为

我有以下测试跳过 -

    [Test]
    public void RavenPagingBehaviour()
    {
        const int count = 2048;
        var eventEntities = PopulateEvents(count);
        PopulateEventsToRaven(eventEntities);

        using (var session = Store.OpenSession(_testDataBase))
        {
            var queryable =
                session.Query<EventEntity>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()).Skip(0).Take(1024);

            var entities = queryable.ToArray();

            foreach (var eventEntity in entities)
            {
                eventEntity.Key = "Modified";
            }

            session.SaveChanges();

            queryable = session.Query<EventEntity>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()).Skip(0).Take(1024);

            entities = queryable.ToArray();

            foreach (var eventEntity in entities)
            {
                Assert.AreEqual(eventEntity.Key, "Modified");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

PopulateEventsToRaven只是将2048个非常简单的文档添加到数据库中.

第一个跳过组合获得前1024个doucuments修改文档,然后提交更改.

下一个跳过组合再次想要获得前1024个文档,但这次它得到文档号1024到2048,因此测试失败.为什么这样,我会再次期待第一个1024?

编辑:我已经变了,如果我不修改文档,行为就好了.

ravendb

9
推荐指数
1
解决办法
691
查看次数

提高POOL使用率-单身人士

我已经开始使用Boost池作为boost / pool / singleton_pool.hpp中定义的单例,因为我需要重复分配很多相同大小的结构。正如我之前使用malloc一样,性能得到了惊人的提高。

我分配的对象由生产者线程放入列表中,而使用者线程将这些对象移到另一端并释放对象。但是当我释放对象时,任务管理器中进程的内存使用量永远不会减少。我猜这是因为池库预先分配了一定数量的内存?

同样,当生产者的数据速率增加时,总内存使用量似乎以块为单位增加了约10k,但即使在调用池中的对象空闲后也从未减少。

我想定期做一些整理工作以释放内存块,以减少进程的整体内存使用量。这可能吗?我不能使用purge_memory,因为这将意味着我必须在农产品和消费者之间同步净化。顺便说一句,purge_memory是否释放了块,即减少了任务管理器中的内存使用量?

我在MS Windows中编程。

谢谢Niladri

PS-我尝试通过将池排序(ordered_malloc)来使用release_memory,但它始终返回false。

更新:

尚未尝试使用purge_memory,因为该池在两个线程之间共享。但是已经发现release_memory仅适用于有序池,并且释放内存的速度很慢,因为它仅释放没有分配的内存块。

我敢肯定,清除会更快。

c++ boost

5
推荐指数
1
解决办法
2772
查看次数

RavenDB高级Lucene查询

我正在学习lucene和ravendb上的绳索 - 我在Raven中有以下文件 -

{
  "InternalEvent": {
    "Desec": "MachineInfo: 1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1, UserInfo: NT AUTHORITY\\LOCAL SERVICE_3, ProcessInfo: \\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe, Pid: 5772, ObjInfo: , EventId: New Process Stopped",
    "MachineInfo": "1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1",
    "UserInfo": "NT AUTHORITY\\LOCAL SERVICE_3",
    "ProcessInfo": "\\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe",
    "Pid": 5772,
    "ObjInfo": "",
    "EventId": "New Process Stopped",
    "Occured": "2011-08-08T23:25:31.8220000+01:00"
  },
  "Key": "6c4abf6a-156e-4224-8eac-72cde756b3c6"
}
Run Code Online (Sandbox Code Playgroud)

我正在查询数据库 -

var searchValue = "InternalEvent:Desec:(" + String.Join(" AND ", searchTerms) + ")";
var eventEntities = session.Advanced.LuceneQuery<EventCacheEntity>()
                                  .WaitForNonStaleResultsAsOfLastWrite()
                                  .Skip(0)
                                  .Take(_pageLimit)
                                  .Where(searchValue);
Run Code Online (Sandbox Code Playgroud)

搜索任何类似的东西,如果searchTerms只有一个术语,如机器,它肯定在字段desec.我究竟做错了什么?

我对lucene查询语法中的嵌套字段不太确定 - 即Internalevent:Desec ??

ravendb

5
推荐指数
1
解决办法
3225
查看次数

从 Java 应用程序中提取文本的通用方法

我需要从桌面上打开的所有窗口中提取所有文本。SendMessage对于 Windows 应用程序来说,使用+来实现此功能相对容易WM_GETTEXT

但这种技术不适用于 Java 应用程序。有没有办法从 Java 应用程序中提取文本,还是徒劳无功?

java desktop-application

5
推荐指数
0
解决办法
478
查看次数

Buildroot Linux内核全新构建

我正在使用buildroot来构建Linux固件。我如何只进行一次干净的重建linux内核(而不必花费一个小时来构建整个程序)?

我试过了 -

make linux-rebuild
Run Code Online (Sandbox Code Playgroud)

但这并不干净。

我也尝试过

make linux-reconfigure && make linux-rebuild
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

embedded-linux buildroot

1
推荐指数
1
解决办法
2586
查看次数

Powershell令人困惑的问题

ps脚本从powershell执行!我已将执行优先级更改为不受限制.但是当我运行一个简单的脚本时,我得到以下内容

在此输入图像描述

powershell

-1
推荐指数
1
解决办法
96
查看次数