根据Internet上的许多消息来源,可以使用D3DKMTQueryStatistics获得GPU使用(负载)。
我已经成功地从这里使用代码进行了一些修改,从而获得了内存信息:http ://processhacker.sourceforge.net/forums/viewtopic.php?t=325#p1338
但是我没有找到D3DKMT_QUERYSTATISTICS结构的成员,该成员应该包含有关GPU使用情况的信息。
我创建了几乎标准的ListView.
RECT rec;
GetClientRect(hwnd, &rec);
ListView = CreateWindow(WC_LISTVIEW, (LPCSTR)L"", (WS_CHILD | WS_VISIBLE | LVS_REPORT), 0, 0, rec.right, rec.bottom-23, hwnd, (HMENU)8553, GetModuleHandle(NULL), NULL);
SendMessage(ListView, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); // Set style
Run Code Online (Sandbox Code Playgroud)
现在我插入几个这样的列:
LVCOLUMNW listColumnW = { 0 };
listColumnW.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
listColumnW.pszText = L"Column1";
listColumnW.cx = 150;
listColumnW.fmt = LVCFMT_LEFT;
SendMessage(ListView,LVM_INSERTCOLUMNW, 0, (LPARAM)&listColumnW);
Run Code Online (Sandbox Code Playgroud)
之后我会检查项目和子项目
LVITEMW lisW = { 0 };
lisW.mask = LVIF_TEXT | LVIF_PARAM;
lisW.pszText = item_text[i];
lisW.iItem = i;
lisW.lParam = i; …Run Code Online (Sandbox Code Playgroud) 我有一个大约有20万个项目的数据库,按用户名排序.现在,当我将一个项添加到数组的末尾并调用我的快速排序函数来对该数组进行排序时,几乎需要一秒的时间进行排序,这是不可接受的.肯定有一些可以做的优化.例如,如果我按顺序将每个字符串从n-1比较为0,然后相应地移动项目,则性能会更高.
其他的想法是我可以执行从0到n-1的二进制搜索,而不是infact搜索,但类似于利用我已经排序的数组.但是我没能编写一个合适的函数来返回一个索引,我的新元素应放在该索引中.
void quick_sort(int left, int right)
{
int i = left, j = right;
if (left >= right) return;
char pivotC[128];
DataEntry *tmp;
strcpy_a(pivotC, sizeof pivotC, User[(left + right) / 2]->username);
while (i <= j)
{
while (StringCompare(User[i]->username, pivotC))
i++;
while (StringCompare(pivotC, User[j]->username))
j--;
if (i <= j)
{
tmp = User[i];
User[i] = User[j];
User[j] = tmp;
i++;
j--;
}
}
if (left < j)
quick_sort(left, j);
if (i < right)
quick_sort(i, right);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏.