web-dev-qa-db-ja.com

アプリケーションが頻繁に使用されると見なされるものは何ですか?

ユニティダッシュボードの「最も頻繁に使用される」部分を決定するためにZeitgeistと呼ばれるものが使用されていることは知っていますが、具体的にはどこにあるのか疑問に思いました。このセクションのアプリケーションの数はさまざまであることがわかっているため、今日最も使用されている#ほど単純ではありません。

最も頻繁に使用されるリストとランキングを指示するルールを表現する(比較的)簡単な方法はありますか?

7
Lewis Goddard

基本的な答え

簡単に言うと、最も頻繁に使用されるスコープは、アプリケーションを起動した回数で並べ替えます。つまり、 Firefox 1000回、 Chromium 999回起動した場合、Firefoxが最初に表示されます。 Firefoxを何ヶ月も起動していなくても。

技術的な回答

簡単に言えば、最も頻繁に使用されるスコープは、インストールされたアプリケーションのZeitgeist.Indexを検索し、結果タイプがMostPopularSubjectsのラッパーです。 Zeitgeistは、zeitgeist-datahubデーモンを使用してこの人気を測定します。このデーモンは、アプリケーションを起動するたびに統計を通知して更新します。関連するレンズコード ここ 、およびZeitgeistのAPIドキュメント ここ を見ることができます。

現在のZeitgeistコード を見ると、MostPopularSubjectsはアクセス数による単純な並べ替えであるように見えます。さらに、同じ数のアプリケーションアクセスが与えられると、アプリケーションは最新のものから順にソートされます。これより少し複雑ですが、最も頻繁に使用されるリクエストに対して生成されるSQLは多かれ少なかれ:

SELECT
  subj_id,
  MAX(timestamp) as timestamp,
  COUNT(subj_id) as num_events
FROM
  event_view
GROUP BY
  subj_id
ORDER BY
  num_events DESC
  timestamp DESC

オープンソースは美しくありませんか?

8
Jjed