2011-06-06 89 views
2

我必須對我的程序進行的分析之一是用戶在我的程序上花了多少時間?它基本上是衡量用戶找到我的程序的有用程度,他們主動繼續使用它。並用於促進用戶積極開始使用該應用程序。用戶花費多少時間在我的程序上?

我最初想到在他們啓動應用程序到關閉應用程序之間使用時間跨度,但問題是用戶可能會保持應用程序打開而不使用它。

我目前使用TotalProcessorTime(C#/ VB.Net)讓管理人員知道用戶在應用程序上花費了多少時間。 TotalProcessorTime給出了應用程序使用CPU的數量,但這並不能很好地轉化爲管理,因爲即使用戶在幾分鐘內主動使用應用程序,TotalProcessorTime也會少得多。

任何開箱即用的思考/建議?

+1

offtopic:恕我直言的應用程序,告訴我無用的信息(促進),並困擾我,我應該使用他們的應用程序將迅速從我的系統中刪除。我決定何時或不想使用該應用程序。不是創造者。 – RvdK 2011-06-06 15:23:29

+0

此應用程序是內部開發的,屬於同一公司的用戶。用戶沒有看到這個應用程序的任何分析統計數據,但他們的經理做。他們希望他們使用它而不是依靠他們的電子表格。 – Viv 2011-06-06 19:52:39

+0

恩nvm然後:)似乎是一個有效的理由。如果是普通用戶,這是另一種情況 – RvdK 2011-06-06 20:12:01

回答

2

既然你想知道多少人們如何使用你的軟件而不是軟件多久使用CPU(它們並不總是一樣的東西),我會做到這一點(和我之前實際使用過)是使用GetLastInputInfo

你可以在你的應用程序中有一個定時器,並檢查每一個說法。如果你的應用程序是活動應用程序,則返回500毫秒,GetLastInputInfo返回系統空閒時間小於某個閾值(5-10秒,取決於你的應用程序的功能) 。只要這兩個條件都成立,您就可以將500ms添加到您的應用程序活動用法中。

當然,您仍然可以將總CPU使用情況作爲單獨的統計信息進行跟蹤,但我認爲我的方式爲您的應用程序提供了更多......聚焦使用情況計數器。

+0

我認爲這可行。雖然每隔幾秒鐘調用一次函數是不可取的... – Viv 2011-06-06 19:48:54

+1

如果你是從性能的角度來看,它確實是不明顯的。 – Blindy 2011-06-06 19:51:50

相關問題