VirtualBox

Ignore:
Timestamp:
Oct 5, 2010 12:31:36 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
66392
Message:

crOpenGL: add mbps/cps to fps measurement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_clear.c

    r32175 r32909  
    2323    uint32_t mcPeriods;
    2424    uint32_t miPeriod;
     25
     26    uint64_t mBytesSum;
     27    uint32_t *mpaBytes;
     28
     29    uint64_t mCallsSum;
     30    uint32_t *mpaCalls;
    2531} VBOXCRFPS, *PVBOXCRFPS;
    2632
    2733void vboxCrFpsInit(PVBOXCRFPS pFps, uint32_t cPeriods)
    2834{
    29     memset(pFps, 0, sizeof (*pFps));
     35    crMemset(pFps, 0, sizeof (*pFps));
    3036    pFps->mcPeriods = cPeriods;
    31     pFps->mpaPeriods = malloc(sizeof (pFps->mpaPeriods[0]) * cPeriods);
    32     memset(pFps->mpaPeriods, 0, cPeriods * sizeof(pFps->mpaPeriods[0]));
     37    pFps->mpaPeriods = crCalloc(sizeof (pFps->mpaPeriods[0]) * cPeriods);
     38    pFps->mpaBytes = crCalloc(sizeof (pFps->mpaBytes[0]) * cPeriods);
     39    pFps->mpaCalls = crCalloc(sizeof (pFps->mpaCalls[0]) * cPeriods);
    3340}
    3441
    3542void vboxCrFpsTerm(PVBOXCRFPS pFps)
    3643{
    37     free(pFps->mpaPeriods);
     44    crFree(pFps->mpaPeriods);
     45    crFree(pFps->mpaBytes);
     46    crFree(pFps->mpaCalls);
    3847}
    3948
     
    4150{
    4251    uint64_t cur = RTTimeNanoTS();
     52    uint64_t curBytes, curCalls;
     53    int i;
     54
     55    curBytes = 0;
     56    curCalls = 0;
     57
     58    for (i = 0; i < cr_server.numClients; i++)
     59    {
     60        if (cr_server.clients[i] && cr_server.clients[i]->conn)
     61        {
     62            curBytes += cr_server.clients[i]->conn->total_bytes_recv;
     63            curCalls += cr_server.clients[i]->conn->recv_count;
     64            cr_server.clients[i]->conn->total_bytes_recv = 0;
     65            cr_server.clients[i]->conn->recv_count = 0;
     66        }
     67    }
     68
    4369    if(pFps->mPrevTime)
    4470    {
    4571        uint64_t curPeriod = cur - pFps->mPrevTime;
     72
    4673        pFps->mPeriodSum += curPeriod - pFps->mpaPeriods[pFps->miPeriod];
    4774        pFps->mpaPeriods[pFps->miPeriod] = curPeriod;
     75
     76        pFps->mBytesSum += curBytes - pFps->mpaBytes[pFps->miPeriod];
     77        pFps->mpaBytes[pFps->miPeriod] = curBytes;
     78
     79        pFps->mCallsSum += curCalls - pFps->mpaCalls[pFps->miPeriod];
     80        pFps->mpaCalls[pFps->miPeriod] = curCalls;
     81
    4882        ++pFps->miPeriod;
    4983        pFps->miPeriod %= pFps->mcPeriods;
     
    6195{
    6296    return ((double)1000000000.0) / vboxCrFpsGetEveragePeriod(pFps);
     97}
     98
     99double vboxCrFpsGetBps(PVBOXCRFPS pFps)
     100{
     101    return vboxCrFpsGetFps(pFps) * pFps->mBytesSum / pFps->mcPeriods;
     102}
     103
     104double vboxCrFpsGetCps(PVBOXCRFPS pFps)
     105{
     106    return vboxCrFpsGetFps(pFps) * pFps->mCallsSum / pFps->mcPeriods;
    63107}
    64108
     
    119163  {
    120164      double fps = vboxCrFpsGetFps(&Fps);
    121       crDebug("fps: %f\n", fps);
     165      double bps = vboxCrFpsGetBps(&Fps);
     166      double cps = vboxCrFpsGetCps(&Fps);
     167      crDebug("fps: %f, Mbps: %.1f, cps: %.1f", fps, bps/(1024.0*1024.0), cps);
    122168  }
    123169#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette