- Tìm số 0 đầu tiên trong một mảng bit
- Unix Hiển thị thông tin về các tập tin khớp với một trong hai mẫu
- Biểu thức chính quy thay thế nhiều tệp
- Ẩn lệnh từ xtrace
我正在编写一个游戏引擎,我需要一种方法来获取精确且准确的“deltatime”值,从中导出当前 FPS 以进行调试并限制帧速率(这对我们的项目很重要)。
经过一些研究,我发现执行此操作的最佳方法之一是使用 WinAPI 的 QueryPerformanceCounter
chức năng. GetTicksCount
必须用于防止 forward counter leaps , 但它本身并不是很准确。
Hiện nay,QueryPerformanceCounter
的问题在于,它显然可能会返回看起来像时间倒转的值(即,一个调用可能会返回一个相对于过去另一个调用在时间上更早的值) .仅当将使用给定处理器内核获得的值与使用另一个处理器内核获得的值进行比较时,才会发生这种情况,这引出了促使我发表这篇文章的最终问题:
SetThreadAffinityMask(GetCurrentThread(),mask)
? Ogre3D在其 Ogre::Timer class (Windows implementation) 中执行此操作,我假设这是为了避免时间倒流。但如果这是真的,那么我将不得不考虑操作系统将线程从一个内核任意移动到另一个内核的可能性,这对我来说似乎很奇怪(不确定为什么)。我想这就是我现在想知道的全部内容。谢谢。
1 Câu trả lời
除非线程有处理器关联掩码,否则调度程序会将其从一个处理器移动到另一个处理器,以便为其提供执行时间。由于在处理器之间移动一个线程会降低性能,它会thử不移动它,但是给它一个处理器来执行比不移动它具有优先权。所以,通常线程会移动。
至于定时器api。 timeGetTime专为多媒体计时而设计,因此它比 GetTickCount
更准确。
QueryPerformanceCounter().
仍然是您最精确的度量。微软对此有话要说。
On a multiprocessor computer, it should not matter which processor is called. However, you can get different results on different processors due to bugs in the basic input/output system (BIOS) or the hardware abstraction layer (HAL). To specify processor affinity for a thread, use the SetThreadAffinityMask function.
因此,如果您在特定计算机上进行时序测试,您可能不必担心 QPC 倒退,您应该进行一些测试,看看它是否对您的计算机有影响。
关于c++ - 当前线程的线程关联掩码更改有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194904/
Thân gửi các bạn: Ngày 18 tháng 3 năm 2014. Tôi đang giải quyết một tình huống khi sử dụng ng-repeat, các phần tử bên trong một mảng (mà tôi lấy từ chuỗi Json) thay đổi thứ tự ban đầu của chúng. Cần phải rõ ràng rằng mảng
Có rất nhiều câu hỏi hỏi về cách thay đổi lớp của div trong trình xử lý nhấp chuột JavaScript, ví dụ ở đây: Thay đổi kiểu Div onclick. Tôi hiểu điều đó rất tốt (chỉ cần thay đổi .className) và nó hoạt động
Tôi đã nhập cơ sở dữ liệu từ Access vào MySQL, nhưng một trong các bảng có tên cột là "Number of Shares" có dấu cách, mặc dù tôi đã thử thay đổi, thay thế hoặc thậm chí xóa tên cột nhưng không được. Có ai có thể giúp giải quyết vấn đề này không String UpdateQuary = "U
Tôi đang làm việc trên một yếu tố ngẫu nhiên của trường học. Hiện tại, tôi có một trang với hai mã CSS. Một cho chế độ xem bình thường và một cho chế độ xem bị vô hiệu hóa. Trang này cũng bao gồm hai nút sẽ thay đổi kiểu bảng được sử dụng. chức năng c
Tôi cần thay đổi văn bản trong một phần tử HTML bằng javascript, nhưng tôi không biết cách thực hiện. ¿ Có giúp được gì không? Tôi định nghĩa nó như thế này: Văn bản tôi muốn thay đổi. Tôi đang cố gắng làm điều này: docum
Tôi có một thanh điều hướng chính nằm trong tệp riêng nav_bar.shtml mà mọi trang khác đều có. Thanh menu là thanh menu jQuery (ApyCom là tên công ty bán các thanh điều hướng này). Cách xác định các thành phần trên thanh điều hướng
Tôi đang loay hoay với mã của mình và bắt đầu tự hỏi liệu thay đổi từ: if(array[index] == 0) thành: if(!array[index] != 0) có thể ảnh hưởng đến bất kỳ mã nào hay không, hay nó chỉ thực hiện cùng một chức năng và tôi không cần nó.
Tôi đang cố gắng tìm cách thay đổi kích thước cửa sổ bảng điều khiển. Sau đây là mã cho hàm tôi đang sử dụng: #include #include #define WIDTH 70 #define HEIGHT 35 HANDLE wHnd;
Tôi gặp nhiều tình huống dẫn đến cùng một hộp thông báo cảnh báo. Có giải pháp nào dễ hơn/tốt hơn là thực hiện nhiều câu lệnh if không? SẢN PHẨM BOX1 BOX2 BOX3
Tôi có XELEMENT B Bob Petier 19310227 1 chứa các phần tử này và tôi muốn chuyển đổi tiền tố như thế này. B Bob Thú Cưng
Tôi gặp phải tình huống này khi sử dụng MySQL 5.6: Truy vấn này hoạt động và trả về kết quả mong đợi: select * from some_table where a = 'b' and metadata->>"$.countr
Tôi tự hỏi liệu có ai biết gói hoặc hàm nào có thể phát hiện bất kỳ sự thay đổi nào trong định dạng của cột ngày tháng trong R không, tức là phát hiện nơi định dạng của vectơ ngày tháng thay đổi, ví dụ: 11/2/90 12/2/90 . . . 15/Feb/1990 16/Feb/1990 .
Tôi muốn có thể thay đổi nhãn của GtkButton sau khi tiện ích được hiển thị char *ButtonStance == "Connect"; GtkWidget *EntryButton = gtk_button_ne
Tôi đang sử dụng bo mạch phát triển FPGA Altera DE2 và cố gắng sử dụng cổng thẻ SD và đường ra âm thanh. Tôi đang lập trình bằng VHDL và C nhưng tôi gặp khó khăn với phần C do thiếu kinh nghiệm/kiến thức. Hiện tại, tôi có thể
Sau khi nhận thấy liên kết này: http://www.newscientist.com/blogs/nstv/2010/12/best-videos-of-2010-progress-bar-illusion.h
Tôi muốn biết trong một số trường hợp, ansible sẽ hiển thị "changed=0" ngay cả khi tác vụ playbook đã được thực thi thành công và ok=2. Điều này xảy ra khi sử dụng Rest API và mô-đun uri. Tôi đã cố gắng tìm lời giải thích nhưng vô ích. Ai có thể nói
Câu hỏi này đã có câu trả lời: Đã đóng cách đây 12 năm. Có thể trùng lặp: thêm nút vào cảnh báo thông báo đẩy Có thể chỉ định các nút để cảnh báo thông báo đẩy trong hộp cảnh báo được hiển thị bởi thông báo từ xa không?
Khi bạn có nhiều hơn 5 View Controller trong TabBarController, hệ thống sẽ tự động thiết lập View "More" cho bạn. Có thể thay đổi màu của thanh điều hướng trong Chế độ xem này để phù hợp với màu tôi đang sử dụng không?
Làm thế nào tôi có thể thay đổi vị trí của thư mục .AndroidStudioBeta, theo mặc định nằm tại \..\User\.AndroidStudioBeta trong Windows, mà không làm hỏng bất cứ thứ gì? /Sửa: Tìm
Hiện tại tôi đang cố gắng áp dụng phong cách lập trình chức năng hơn cho một dự án liên quan đến phát triển GUI cấp thấp (dựa trên LWJGL). Rõ ràng là trong trường hợp này, có rất nhiều trạng thái cần phải được lưu giữ và có thể thay đổi được trong phiên bản hiện tại. Mục tiêu của tôi cuối cùng là có một trạng thái hoàn toàn không thể thay đổi để tránh
Tôi là một lập trình viên xuất sắc, rất giỏi!