JP7309881B2 - コンピューティングデバイスのためのメモリクラッシュ防止 - Google Patents

コンピューティングデバイスのためのメモリクラッシュ防止 Download PDF

Info

Publication number
JP7309881B2
JP7309881B2 JP2021533215A JP2021533215A JP7309881B2 JP 7309881 B2 JP7309881 B2 JP 7309881B2 JP 2021533215 A JP2021533215 A JP 2021533215A JP 2021533215 A JP2021533215 A JP 2021533215A JP 7309881 B2 JP7309881 B2 JP 7309881B2
Authority
JP
Japan
Prior art keywords
computing device
memory
application
memory usage
future
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021533215A
Other languages
English (en)
Other versions
JPWO2020123048A5 (ja
JP2022511938A (ja
Inventor
カオ,シャオ-ホア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Uber Technologies Inc
Original Assignee
Uber Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Uber Technologies Inc filed Critical Uber Technologies Inc
Publication of JP2022511938A publication Critical patent/JP2022511938A/ja
Publication of JPWO2020123048A5 publication Critical patent/JPWO2020123048A5/ja
Application granted granted Critical
Publication of JP7309881B2 publication Critical patent/JP7309881B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)
  • Navigation (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Air Bags (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

関連出願の相互参照
本出願は、2018年12月14日に出願された米国特許出願第16/220,419号に対する優先権を主張するものであり、上述の出願は参照によりその全体が本明細書に組み込まれるものである。
アウトオブメモリ(OOM)イベントは、オペレーティングシステム、アプリケーション、または他のプログラムによる使用のために追加のメモリをほとんどまたは全く割り当てることができない場合に、コンピューティングデバイスで発生する。そのような状態の結果、アプリケーションが適切に機能しなくなったり、アプリケーションがクラッシュしたりすることがある。
コンピューティングデバイスは、コンピューティングデバイスのメモリ使用メトリクスのセットを監視することができる。例えば、コンピューティングデバイスは、広範なメモリ使用を必要とする機能を含むまたは表示する、あるいは操作を行う、1つまたは複数のアプリケーションを実行している可能性がある。いくつかの例では、履歴メモリ使用量データおよびメモリ使用量メトリクスのセットに基づいて、コンピューティングデバイス(または、別の実装形態では、コンピューティングデバイスのシステムまたはオペレーティングシステム)(本明細書では、簡略化のためにコンピューティングデバイスと称する)上で実行されているアプリケーションは、将来のメモリ使用量が臨界メモリ閾値を超えるかどうかを決定または予測することができる。将来のメモリ使用量が臨界メモリ閾値を超えるとの決定に応答して、コンピューティングデバイスは、アプリケーションの1つまたは複数のアプリケーション機能を劣化および/または非アクティブ化することができる。
様々な実装形態において、実行中のアプリケーションは、機能のセットを含むことができ、その各々は、1つまたは複数の階層的なティア(tier)レベルと関連付けることができる。例えば、特定のアプリケーション機能は、アプリケーションの作用に不可欠であり、最高の階層を割り当てることができる。最高階層のアプリケーション機能は、非アクティブ化または一時停止から保護することができるが、後述するように、劣化に利用可能であると分類されうる。特定の実施例では、これらの最高階層のアプリケーション機能は、コンピューティングデバイスによる劣化および/または非アクティブ化から除外することができる。他の機能は、1つまたは複数の非必須階層に分類することができ、そのような機能を劣化および/または非アクティブ化のために利用可能にする。
本明細書に記載されている実施例によれば、アプリケーション機能はさらに、機能が非アクティブ化、劣化および非アクティブ化、劣化のみ(例えば、かつ劣化のレベル)、非アクティブ化も劣化もしないことに利用可能であるかどうかを示す、サブカテゴリに分類することができる(例えば、各機能に対するメタデータタグとして)。本明細書で用いられるように、アプリケーション機能の「劣化」は、機能のコンテンツレンダリングレートの低減(例えば、コンテンツのストリーミングまたは更新のため)、タイルの拡大(例えば、ディスプレイ解像度を目標パーセンテージだけ低減する)、データ転送速度の低減(例えば、位置データの更新期間の増加)などを含むことができる。本明細書でさらに提供されるように、アプリケーション機能の「非アクティブ化」は、その機能の現在のメモリ使用量を解放するために、アプリケーション上でその機能を現在の使用から排除する(または、一定期間に亘りその機能を現在の使用から一時停止する)ことを含むことができる。
様々な実施例では、コンピューティングデバイスは、コンピューティングデバイスのメモリメトリクスのセットを監視するメモリ監視機能を含むことができる。一態様では、コンピューティングデバイスは、実行中のアプリケーションによる現在のメモリ使用量を動的に監視する。コンピューティングデバイスはさらに、コンピューティングデバイスのシステム空きメモリ、および/または、コンピューティングデバイスが含む総メモリ量を決定することができる。さらなる実装形態では、コンピューティングデバイスは、実行中のアプリケーションの現在のメモリ使用量に対する合計空きメモリの割合を動的に決定することができる。さらなる実装形態では、コンピューティングデバイスは、実行中のアプリケーションの履歴メモリ使用量を示す履歴データを格納し、所定の期間の現在のメモリ使用量(例えば、アプリケーションによる過去5秒間のメモリ使用量)を監視することができる。
本明細書に記載されている実施例によると、コンピューティングデバイスは、所定の期間の現在のメモリ使用量およびアプリケーションの履歴メモリ使用量に基づいて、実行中のアプリケーションのための将来のメモリ使用量を予測することができる。例えば、コンピューティングデバイスは、実行中のアプリケーションが今後30秒以内に臨界メモリ使用量閾値を超えるかどうかを判断することができる。さらにまたは代わりに、コンピューティングデバイスは、コンピューティングデバイスに含まれるオペレーティングシステム(OS)に統合されたメモリ警告システムのような、サードパーティのメモリ警告システムを活用することもできる。このようなサードパーティの警告システムは、メモリ不足の警告を提供し、これは、コンピューティングデバイスに現在使用していないバックグラウンドアプリケーションの終了のような第1のセットのメモリ使用量削減アクションを実行させる。さらに、コンピューティングデバイスは、OSメモリ警告システムからの各メモリ警告をログに記録して、実行中のアプリケーションについてのメモリ圧力レベルを決定することができる。
様々な実施例では、所定の時間に亘るOSメモリ警告システムからの低メモリ警告の閾値数を、実行中のアプリケーションについての階層的メモリ圧力レベルとしてコンピューティングデバイスにより確立することができる。例えば、過去1分以内に3回のメモリ警告は、高メモリ圧力レベルを構成し、過去1分以内に5回のメモリ警告は、臨界メモリ圧力レベルを構成しうる。 各メモリ圧力レベルは、実行中のアプリケーションについてのメモリ使用量削減アクションのそれぞれのセットを実行するようにコンピューティングデバイスをトリガーすることができる。例えば、高メモリ圧力閾値が達成されるまたは超えられた場合、コンピューティングデバイスは、アプリケーション機能のより低い階層のセット(例えば、非必須機能)の劣化および/または非アクティブ化を開始することができる。臨界メモリ圧力閾値が達成された場合、コンピューティングデバイスは、コンピューティングデバイスのアウトオブメモリ(OOM)状態を防ぐために、追加のアプリケーション機能(例えば、より高い階層のアプリケーション機能)を積極的に劣化および/または非アクティブ化することができる。
さらにまたは代わりに、コンピューティングデバイスは、過去のアプリケーション使用量データおよび短い期間(例えば、前の5秒)のアプリケーション使用量に基づいて、将来のメモリ使用量を予測し、予測された将来のメモリ使用量が特定のメモリ圧力レベルを超えるかどうかを決定することができる。したがって、階層化されたメモリ削減トリガーは、コンピューティングデバイスによる予測に基づくことができる。例えば、過去のデータおよび現在の使用量データからのメモリ使用量予測に基づいて、コンピューティングデバイスは、第3階層のメモリ圧力レベルが今後20秒以内に超えられると予測することができる。この予測に応答して、コンピューティングデバイスは、第3階層のメモリ閾値レベルがそもそも超えられないように、メモリ使用量削減アクションを先制的に実施することができる。一例として、コンピューティングデバイスは、第3層のアプリケーション機能および対応するメモリ削減アクションのルックアップを行ってそのような機能を実行し、次いで、それに応じてメモリ削減アクションを実装することができる。
様々な実装形態において、コンピューティングデバイスは、メモリメトリクスを監視して、第1階層のメモリ圧力閾値が超えられたかどうかを動的に判断することができる。そうであれば、コンピューティングデバイスは、実行中のアプリケーションに対して第1階層のメモリ使用量削減アクションを実行することができる。 コンピューティングデバイスはさらに、第2階層の、より臨界的なメモリ圧力閾値が超えられたかどうかを判断することができる。そうであれば、コンピューティングデバイスは、実行中のアプリケーションに対して第2階層のメモリ使用量削減アクションを実行することができる。コンピューティングデバイスは、メモリ圧力レベルのために任意の数の階層を確立することができ、さらに、対応するメモリ使用量削減アクションの任意の数の階層を実行することができると考えられる。さらに、メモリ圧力レベルの各階層は、メモリ使用量削減アクションの特定の階層に対応することができると考えられる。さらに、メモリ使用量削減アクションの各階層は、対応するメモリ圧力レベルが超えられたことに応答して、選択的に劣化または非アクティブ化することができる、アプリケーション機能のセットに対応することができる。
一例として、実行中のアプリケーションは、ライブマップコンテンツ、マップコンテンツに重なるガイド付き軌跡、軌跡の更新などの最上位層の機能を含むナビゲーションアプリケーションを構成しうる。最上位層の特定の機能は、ガイド付き軌跡機能のように、劣化から除外することができ、ここでは、マップコンテンツが劣化(例えば、コンテンツレンダリングの削減)に利用可能でありうる。ナビゲーションアプリケーション機能は、来るべき曲がり角に備えかつ案内された軌跡に従うようにという音声による指示、交通警告、給油所または充電所、レストラン、地図上の特定のポイント(point of interest)のオーバーレイされたインジケータ、および非本質的なボタンまたは選択可能な機能などの、非本質的な機能をさらに含むことができる。一例では、アプリケーションは、ストリーミングまたはほぼ連続的に更新されるデータ(例えば、輸送業者が利用する輸送サービスアプリケーションのための料金急騰(surge pricing)地域インジケータ)などの、非本質的なメモリを大量に消費する機能をさらに含むことができる。
コンピューティングデバイスがメモリ警告を受信すると、第1のメモリ圧力レベルを超える可能性がある。第1のメモリ圧力レベルが超えられたことに応答して、コンピューティングデバイスは、ナビゲーションアプリケーションのアプリケーション機能の第1のセット、およびアプリケーション機能の第1のセットを実行するメモリ削減アクションのセットを識別することができる。例えば、アプリケーション機能の第1のセットの各アプリケーション機能についてのメモリ削減アクションは、メタデータにおいて、劣化または非アクティブ化のいずれかとして識別することができ、さらに、機能を劣化させる方法を画定することができる(例えば、マップコンテンツレンダリングレートを20%削減する)。
この第1のセットのメモリ削減アクションが実行中のアプリケーションに対して実行されると、コンピューティングデバイスは、メモリメトリクスの監視を継続する、および/またはOSメモリ警告システムによって出された警告を監視することができる。 第2のメモリ圧力閾値を超えた場合、コンピューティングデバイスは、第2のセットのアプリケーション機能、および第2のセットのアプリケーション機能に対して実行するメモリ削減アクションのセットを決定することができる。第2のセットのアプリケーション昨日は、第1のセットからのアプリケーション機能を(例えば、劣化した機能として)含むことができることに留意されたい。さらに、第2セットのアプリケーション機能のそれぞれに対するメモリ削減アクションは、コンピューティングデバイスによって決定されかつ実行され得る。これらのアクションは、劣化、さらなる劣化(例えば、第1のセットだけでなく、第2のセットの機能に対して)、および非アクティブ化を含むことができる。
コンピューティングデバイスは、追加のメモリ圧力閾値が超えられているかどうかについてメモリメトリクスの監視を継続することができる。したがって、超えられたメモリ圧力閾値のそれぞれについて、コンピューティングデバイスは、実行中のアプリケーションに対するアプリケーション機能の対応するセットを調べ、また、それらのアプリケーション機能に対して実行するメモリ削減アクションの対応するセットを調べることができる。したがって、実行中のアプリケーションについて、各機能をデータベースまたは論理テーブルにリストすることができ、各機能をメモリ削減のための1つまたは複数の階層に関連付けることができ、リストされた各階層について、各機能をメモリ削減アクション(例えば、劣化、劣化レベル、または非アクティブ化)に関連付けることができる。
一例では、実行中のアプリケーションは、所定の地域についてのネットワークベースの輸送サービスの輸送業者によって利用される輸送サービスアプリケーションを含むことができる。輸送サービスアプリケーションは、連続的またはほぼ連続的な更新を必要とする様々なメモリ集中型の機能を含むことができる。そのような機能には、マップコンテンツ、輸送招待の通知、輸送招待の受け入れまたは拒否のためのタイマー、ナビゲーションコンテンツ(例えば、マップコンテンツに重なる進路変更ごとの軌跡)、音声による進路変更ごとの指示、選択可能なボタンまたはメニューアイテム、選択可能なマップ機能(例えば、地図上の特定のポイントについての情報コンテンツ)などが含まれる。この機能は、輸送サービスの需要が高いエリアを示すマップコンテンツ上の情報を輸送業者に提供する動的価格設定機能をさらに含むことができる。この動的価格設定機能は、輸送サービスについての需給データに基づいてほぼ継続的に更新する必要があり、さらに地図データ上に重ねられたコンテンツをレンダリングすることを含む(例えば、輸送需要の高いサブ領域に亘って色分けされたシェーディング、料金急騰マルチプライヤー機能など)。
そのような実施例では、コンピューティングデバイスは、輸送サービスアプリケーションについてのアプリケーション機能の各階層をリストした階層化テーブルを格納することができる。さらに、このテーブルは、各アプリケーション機能についての対応するメモリ圧力レベル、およびそのメモリ圧力閾値を超えたときに実行される対応するメモリ削減アクションをさらにリストすることができる。例えば、輸送サービスアプリケーションの動的価格設定機能は、複数の階層と関連付けることができ、後続の各階層は実行される劣化アクションを示し、最終階層は動的価格設定機能の非アクティブ化を示す。第1のメモリ圧力閾値レベルを超えた場合、コンピューティングデバイスは、テーブル内のルックアップを実行し、第1のセットのアプリケーション機能内の動的価格設定機能を識別し、動的価格設定機能に対して実行するメモリ削減アクションを決定することができる(例えば、コンテンツレンダリングレートを削減する)。n番目のメモリ圧力閾値レベルを超えた場合、コンピューティングデバイスは、アプリケーション機能のn番目の階層セット、およびそれらのアプリケーション機能に対して実行される対応するメモリ削減アクションについて、テーブル内のルックアップを実行することができる。
他にも利点はあるが、本明細書に記載されている実施例は、コンピューティングデバイス上で実行されるターゲットアプリケーションに対して非常に緻密なアプリケーション機能の劣化を実装することによって、コンピューティングデバイスの低メモリ状態またはメモリ不足状態を反応的および/または先制的に解決するという技術的効果を達成する。このような実施例では、現在のメモリ不足警告技術を活用するだけでなく、予測機能を実装して、現在または予測されるメモリ状況を考慮してターゲットアプリケーションのパフォーマンスを最適化することができる。
本明細書において用いられるコンピューティングデバイスとは、ネットワークを介してシステムと通信するためのネットワーク接続性および処理リソースを提供することができる、デスクトップコンピュータ、携帯電話コンピューティングデバイスおよび/またはスマートフォン、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、仮想現実(VR)または拡張現実(AR)ヘッドセット、タブレットコンピューティングデバイス等に対応する装置を指す。コンピューティングデバイスは、カスタムハードウェア、自動車の車載装置、または車載コンピュータ等にも対応し得る。また、コンピューティング装置は、ネットワークサービスと通信するよう構成された専用アプリケーションを操作しうる。
本明細書に記載されている1つ以上の例では、コンピューティング装置によって行われる方法、技術、および動作は、プログラムによって、またはコンピュータによって実装される方法として行われる。本明細書において用いられる「プログラムによって」とは、コードまたはコンピュータが実行可能な命令を用いることを意味する。これらの命令は、コンピューティング装置の1以上のメモリリソースに格納され得る。プログラムによって行われる工程は、自動であってもよく、または自動でなくてもよい。
本明細書に記載されている1以上の例は、プログラムモジュール、エンジン、またはコンポーネントを用いて実装され得る。プログラムモジュール、エンジン、またはコンポーネントは、1以上の規定されたタスクもしくは機能を実行可能なプログラム、サブルーチン、プログラムの一部、またはソフトウェアコンポーネントもしくはハードウェアコンポーネントを含み得る。本明細書において用いられるモジュールまたはコンポーネントは、他のモジュールまたはコンポーネントから独立して、ハードウェアコンポーネント上に存在し得る。或いは、モジュールまたはコンポーネントは、他のモジュール、プログラム、またはマシンの共有要素または共有処理であってもよい。
本明細書に記載されている幾つかの例は、一般的に、処理リソースおよびメモリリソースを含むコンピューティング装置を用いることを必要とし得る。例えば、本明細書に記載されている1以上の例は、全体的にまたは部分的に、例えば、サーバ、デスクトップコンピュータ、携帯電話またはスマートフォン、パーソナルデジタルアシスタント(例えば、PDA)、ラップトップコンピュータ、VRまたはAR装置、プリンタ、デジタルピクチャーフレーム、ネットワーク機器(例えば、ルータ)、およびタブレット装置等のコンピューティング装置上において実装され得る。メモリリソース、処理リソース、およびネットワークリソースは全て、本明細書に記載されている任意の例の確立、使用、または実行(任意の方法の実行、または任意のシステムの実装を含む)に関連して用いられ得る。
さらに、本明細書に記載されている1以上の例は、1以上のプロセッサによって実行可能な命令を用いることによって実装され得る。これらの命令は、コンピュータ可読媒体に担持され得る。以下において図面と共に図示または説明されるマシンは、本明細書において開示されている例を実装するための命令が担持および/または実行され得る処理リソースおよびコンピュータ可読媒体の例を提供するものである。具体的には、本発明の例と共に示される多くのマシンは、プロセッサと、データおよび命令を保持するための様々な形態のメモリとを含む。コンピュータ可読媒体の例としては、パーソナルコンピュータまたはサーバのハードドライブ等の永続メモリストレージ装置が挙げられる。コンピュータストレージ媒体の他の例としては、CDまたはDVD装置等の携帯型ストレージ装置、フラッシュメモリ(スマートフォン、多機能装置、またはタブレットに搭載されているもの等)、および磁気メモリが挙げられる。コンピュータ、端末、ネットワーク対応装置(例えば、携帯電話等のモバイル装置)は全て、プロセッサ、メモリ、およびコンピュータ可読媒体に格納された命令を利用するマシンおよび装置の例である。更に、複数の例は、コンピュータプログラム、またはそのようなプログラムを担持可能なコンピュータが使用可能な担持媒体の形態で実装され得る。
本明細書の開示は添付図面の図において限定としてではなく例として例示され、図面では、同様の参照番号は類似の構成要素を指す。
本明細書に記載されている例による、メモリ管理およびクラッシュ防止技術を実装する例示的なコンピューティングデバイスを示すブロック図 本明細書に記載されている例による、例示的なアプリケーション機能の階層テーブルを示す図 本明細書に記載されている例による、コンピューティングデバイス上で実行中のアプリケーションについてのメモリ使用量を管理する例示的な方法を示すブロック図 本明細書に記載されている例による、コンピューティングデバイス上で実行中のアプリケーションについてのメモリ使用量を管理する例示的な方法を示すブロック図 本明細書に記載されている例が実装されうるコンピューティングデバイスを示すブロック図
システムの説明
図1は、本明細書に記載された実施例に従った、メモリ管理およびクラッシュ防止技術を実装する例示的なコンピューティングデバイス100を示すブロック図である。コンピューティングデバイス100は、一組のセンサ150(例えば、測位システム、IMU、カメラ、マイクロフォン、タッチセンサ、周囲光センサなど)、および、実行中のアプリケーション135のための表示インターフェース162を生成するディスプレイ160を含むことができる。コンピューティングデバイス100はさらに、コンピューティングデバイス100を1つまたは複数のネットワーク180と接続する通信インターフェース110を含むことができる。コンピューティングデバイス100はさらに、メモリモニタ120およびアプリケーションマネージャ140を含むことができる。メモリモニタ120は、コンピューティングデバイス100のメモリ130に対するメモリメトリクスのセット(例えば、現在の使用量データ132および/または履歴使用量データ134)を連続的または周期的にモニタすることができる。
アプリケーションマネージャ140は、ユーザからの入力データに応答してアプリケーション135を実行することができる。メモリ130は、アプリケーション135のセットを格納することができる。特定のアプリケーション135について、メモリ130はさらに、メモリ圧力閾値レベルに対応する階層的な階層で各アプリケーション機能をリストしたアプリケーション機能階層テーブル136を格納することができる。アプリケーション機能階層テーブル136は、各階層における各アプリケーション機能に対して実行されるメモリ削減アクション(例えば、アクションなし、劣化、劣化レベル、非アクティブ化)を示すメモリ使用量削減アクションメタデータ138を含むことができる。
様々な実装形態において、メモリ130は、実行中のアプリケーション135に固有の履歴メモリ使用量データ134を収集および格納することができる。例えば、履歴使用量データ134は、現在よりも前の所定の期間(例えば、30秒)に亘る実行中のアプリケーションのメモリ使用量を示すことができる。対照的に、現在の使用量データ132は、現在より前のより短い時間(例えば、5秒)に対応することができる。実行中のアプリケーションについての履歴メモリ使用量データ134および現在の使用量データ132に基づいて、メモリモニタ120は、コンピューティングデバイス100についてのメモリ使用量が将来のある時点(例えば、将来の30秒)において臨界メモリ閾値を超えるかどうかを判断することができる。本明細書で提供されるように、臨界メモリ閾値は、コンピューティングデバイス100における差し迫ったメモリ切れクラッシュに対応することができる。
メモリモニタ120は、メモリメトリクスを利用して、特定のメモリ圧力閾値を超えるかどうかを予測し、それに応じてアプリケーションマネージャ140に警告トリガー-現在または予測されたメモリ閾値を超えることを示す-を発行することができる。様々な実施例では、メモリメトリクスは、コンピューティングデバイス100の現在のシステム空きメモリ、およびコンピューティングデバイス100が含む総メモリ量を含むことができる。さらなる実装形態では、コンピューティングデバイス100は、コンピューティングデバイス100の総空きメモリ対現在のメモリ使用量の比率を動的に決定するか、またはそうでなければ予測することができる。現在のまたは予測された比率が第1の閾値(例えば、メモリモニタ120による第1の警告トリガー)を超える場合、アプリケーションマネージャ140は、第1のセットの機能について階層テーブル136内でルックアップを実行し、メモリ削減アクションを実施することができる。比率が第2の閾値を超えた場合、アプリケーションマネージャ140は、第2のセットの機能について階層テーブル136内で第2のルックアップを実行し、メモリ削減アクションを実施し、そのようにして、階層を下っていく。したがって、メモリモニタ120からの警告トリガーのレベルに基づいて、アプリケーションマネージャ140は、対応するアプリケーション機能のセットについて実行中のアプリケーションのアプリケーション機能階層テーブル136においてルックアップを実行し、次いで、それらの機能についてメモリ使用量削減アクションメタデータ138に示されるメモリ使用量削減アクションのセットを実装することができる。
本明細書に記載されているように、メモリモニタ120は、コンピューティングデバイス100のOSメモリ警告システム131の機能を活用することもでき、OSメモリ警告システム131は、現在のメモリ状態に基づいてメモリモニタ120に反応型警告を発行することができる。特定の態様では、メモリモニタ120は、これらの警告を利用して、実行中のアプリケーション135に対するメモリ圧力警告レベルを決定することができる。変形例では、メモリモニタ120は、OS警告システム131からの反応型警告を利用して、コンピューティングデバイス100が将来のある時点(例えば、30秒後の将来)において複数のメモリ圧力閾値のうち特定のメモリ圧力閾値を超えるかどうかを予測することができる。その際、メモリモニタ120は、コンピューティングデバイス100全体、標的の実行中のアプリケーション135についての現在の使用量データ132、およびそのアプリケーションについての過去の使用量データ134について、OSメモリ警告システム131から多くの反応型メモリ警告を決定することができる。これらの要素に基づいて、メモリモニタ120は、複数のメモリ圧力レベルのうちのメモリ圧力閾値レベルが超過することを予測またはそうでなければ決定し、対応する警告トリガーをアプリケーションマネージャ140に提示することができる。
メモリ使用量がいずれ将来の時点で特定のメモリ閾値を超えることを示す、メモリモニタ120からの警告トリガー(例えば、差し迫ったクラッシュを示す臨界メモリ閾値)に応答して、アプリケーションマネージャ140は、実行中のアプリケーション135の1つまたは複数のアプリケーション機能を劣化させることができる。例えば、アプリケーションマネージャ140は、実行中のアプリケーション135のアプリケーション機能階層テーブル136のルックアップを実行して、劣化および/または非アクティブ化のためのアプリケーション機能のセット(例えば、メモリモニタ120によって決定されたメモリ圧力閾値に対応する機能の階層セット)を特定することができる。特定の実装形態では、階層テーブル136は、アプリケーション機能のリスト、および、各アプリケーション機能に対してどの特定のメモリ削減アクションを実施するかを示すために各機能にタグ付けされた使用量削減メタデータ138を含むことができる。
アプリケーションマネージャ140は、実行中のアプリケーション135自体のコンポーネントを含んでもよい、またはコンピューティングデバイス100上で実行されるオペレーティングシステムのコンポーネントを含んでもよいと考えられる。したがって、本明細書で説明したアプリケーションマネージャ140の機能は、コンピューティングデバイス100上で実行中の任意のアプリケーションのメモリを監視および管理するようにオペレーティングシステムによって構成されてもよい、あるいは、コンピューティングデバイス上で実行中の任意の個々のアプリケーションの監視および管理コンポーネントを含んでもよい。
本明細書で説明したように、アプリケーションマネージャ140が劣化に着目する実行中のアプリケーション135は、コンテンツストリーミングアプリケーション(例えば、ビデオまたは音楽ストリーミング)、マッピングおよび/またはナビゲーションアプリケーション、ソーシャルメディアアプリケーション、ニュースコンテンツアプリケーション、マーケットプレイスまたは販売アプリケーションなどを含むことができる。特定の実施例では、アプリケーションマネージャ140は、実行中のアプリケーション135の内蔵管理プログラムを含むことができ、アプリケーション開発者がアプリケーション機能階層テーブル136を作成することを可能にする。このような配置により、アプリケーション開発者は、どの機能が必須であるか、どの機能が必須であるが劣化する可能性があるか、どの機能が必須ではなく、劣化および/または非アクティブ化される可能性があるかの優先順位をつけることができる。
特定の態様では、メモリモニタ120は、アプリケーションマネージャ140に階層的な警告を発行することができる。例えば、第1の階層的警告は、より低い階層のメモリ使用量警告を含むことができ、アプリケーションマネージャ140に、非必須アプリケーション機能の第1のセットのみを劣化させる、および/または、特定の非必須機能を非アクティブ化させることができる。メモリモニタ120からの次の階層の警告は、アプリケーションマネージャ140に、階層テーブル内のアプリケーション機能の次の階層レベルをルックアップさせ、それらの機能に対してメモリ削減アクションのセットを実行させることができる(例えば、その階層内のそれらの機能に対する使用量削減メタデータ138に示されるように)。メモリモニタ120からの臨界メモリ警告(例えば、差し迫ったアウトオブメモリクラッシュを示す)は、アプリケーションマネージャ140に、階層テーブル136内のアプリケーション機能の最終階層セットをルックアップさせ、それらの機能に対してメモリ使用量削減アクションの最終的な、最も積極的なセットを実行させることができる。
メモリ削減アクションの実施例は、ディスプレイスクリーン160の表示インターフェース162上に提示されるコンテンツデータの解像度の低減(例えば、ピクセルまたは表示タイルの拡大または結合)を含むことができる。そのようなアクションはさらに、コンテンツストリームまたはマッピングコンテンツのコンテンツレンダリングレートの低減(例えば、毎秒10フレームから毎秒5フレームへ)を含むことができる。追加的または代替的に、メモリ削減アクションは、センサ150からのセンサデータ送信レートを低減すること(例えば、4秒ごとではなく8秒ごとに位置更新を送信すること)、または特定のセンサ150を非アクティブ化することを含んでもよい。特定の実施例では、アプリケーションマネージャ140は、ネットワーク180のデータセンターから受信するサービスデータ更新レートを低減することもできる。例えば、通常のメモリ状態では、サービスデータは10秒ごとに更新されてもよい。そのような更新は、交通状況の更新、輸送サービスのための需給の更新、ニュースフィードの更新などを示してもよい。特定のメモリ圧力閾値を超えた場合、アプリケーションマネージャ140は、サービスデータの更新レートを、例えば、30秒に1回に減少させることができる。
アプリケーション135に対するこのような粒度の高い機能管理は、コンピューティングデバイス100の現在および/または予測されるメモリ状態に応じてそのアプリケーションを最適化すること、および、複数のアプリケーションが不適切に機能する原因となるコンピューティングデバイス100のアウトオブメモリ状態を防止することの両方をもたらすことができると考えられる。例えば、ソーシャルメディア、ナビゲーション、コンテンツストリーミングなどのメモリ集約型アプリケーションは、メモリモニタ120およびアプリケーションマネージャ140の使用を活用して、対象となるアプリケーション135のメモリ消費量を大幅に削減し、高いまたは臨界メモリ状態を緩和することができる。アプリケーション135は、内臓アプリケーション管理機能を含むことができ、この機能は、本開示全体を通して説明されるアプリケーション機能階層テーブル136および削減メタデータ138を利用して、本明細書で説明されるメモリ使用量削減技術を実装することができる。
階層的なアプリケーション機能テーブル
図2は、本明細書に記載されている実施例による、アプリケーション機能の階層テーブル200を例示的に示している。図2の以下の説明では、図1に関して示され説明されたのと同様の機能を示す参照文字が参照されうる。図2を参照すると、階層テーブル200は、コンピューティングデバイス100のデータベース295に格納することができ、図1に関して説明した階層テーブル136に対応することができる。特定の態様では、階層テーブル200は、ナビゲーションアプリケーション、輸送サービスアプリケーション、コンテンツストリーミングアプリケーションなど、コンピューティングデバイス100の単一のアプリケーションに関連付けることができる。特定の実装形態では、階層テーブル200は、図2に示されるような、複数のデバイスアプリケーション205のための階層的な機能階層を含むことができる。例えば、リストアップされたアプリケーション205のいずれかは、現在実行中であってもよい、または、特定のメモリ圧力閾値を超えたときにバックグラウンドアプリケーションとして実行してもよい。閾値を超えたことに応答して、コンピューティングデバイス100は、現在実行中のアプリケーション205のいずれかを識別し、その特定のアプリケーションについて、それぞれの階層化されたアプリケーション機能のルックアップを実行することができる。
図2に示すように、実行中のアプリケーション(App1)は、指定されたメモリ圧力閾値を超えたときにメモリ削減処理のために、機能階層245にリストアップされた多数のアプリケーション機能を含むことができる。本明細書に記載の実施例に従って、メモリモニタ120は、第1のメモリ圧力警告トリガー212をアプリケーションマネージャ140に送信することができる。これに応答して、アプリケーションマネージャ140は、実行中のアプリケーション(App1)の機能階層テーブル200内で第1のルックアップを実行して、メモリ使用量削減のための第1階層のアプリケーション機能210を同定することができる。特定の態様では、第1階層のアプリケーション機能210の各々は、アプリケーションマネージャ140が実行するためのメモリ削減アクション215(例えば、メタデータ内)と関連付けることができる。
図2を参照すると、App1は、音声コマンド、メニューリスト、マップコンテンツ、リモートソースへのGPSデータ送信、動的価格設定機能(例えば、輸送サービスアプリケーション用)、および広告更新機能を含む第1階層機能210を含むことができる。各機能についてのアクションタグ215は、アプリケーションマネージャ140に対して、その機能に対して指定されたメモリ削減アクションを実行するように指示することができる。図示の例では、メモリ削減アクション215は、音声コマンドの非アクティブ化、メニューリストの縮小(例えば、優先度の低い項目の排除)、マップコンテンツの劣化(例えば、20%)、GPSデータ送信速度の劣化(例えば、4秒に1回から8秒に1回に縮小)、動的価格設定更新の劣化(例えば、50%)、および広告更新の劣化(例えば、50%)を含む。
第2の、より臨界的なメモリ圧力トリガー222に応答して、アプリケーションマネージャ140は、第2階層のアプリケーション機能220のルックアップを実行し、第2階層のアプリケーション機能220のそれぞれに関連するそれぞれのメモリ削減アクションを実施することができる。第1階層のアプリケーション機能210の一部は、第2階層220にもリストアップされているが、異なる、より積極的なメモリ削減アクションが関連付けられていることに留意されたい。さらに、アプリケーションマネージャ140は、機能階層245を順次下に進む必要はないと考えられる。むしろ、メモリモニタ120は、任意の所与の時間に、階層テーブル200の任意の階層に対応する任意のメモリ圧力レベル警告212、222を発行することができ、アプリケーションマネージャ140は、任意のより低い階層のアプリケーション機能に対してメモリ削減アクション(例えば、非アクティブ化アクション)のそれぞれを実行し、その後、現在のメモリ圧力レベル警告に対応してアプリケーション機能に対してメモリ削減アクションを実行することができる。
例えば、メモリモニタ120は、App1の第3階層のアプリケーション機能230に対応する、非常に臨界的な第3階層のメモリ圧力警告を発行することができる。これに応答して、アプリケーションマネージャ140は、第1階層210からの音声コマンドを非アクティブ化し、次に第2階層220からの広告更新、メニューリスト、動的価格設定機能、および特定のポイント選択機能を非アクティブ化し、最後に、第3階層のアプリケーション機能230に対してメモリ削減アクションを実行することができる(例えば、軌道線を10%劣化させ、コンテンツストリームを非アクティブ化し、地図コンテンツを60%劣化させるなど)。本明細書で説明したように、機能階層240は、図2に示すように、それぞれが特定のメモリ圧力閾値、またはメモリ圧力レベルトリガー212、222に対応する任意の数の階層を含むことができる。指定されたアプリケーションのこの階層的なメモリ削減処理は、コンピューティングデバイス100の現在のメモリ状況を考慮してアプリケーションを最適化しながら、アウトオブメモリクラッシュを防止することができることが考えられている。
方法論
図3および図4は、本明細書に記載の実施例による、コンピューティングデバイス上の実行中のアプリケーションのメモリ使用量を管理する例示的な方法を示すブロック図である。図3および4の以下の説明では、図1および2に関して示され説明されたのと同様の機能を表す参照文字を参照することができる。さらに、図3および4に関連して説明されるプロセスは、図1に関して示され説明されたような例示的なコンピューティングデバイス100によって実行されてもよい。図3を参照すると、コンピューティングデバイス100は、コンピューティングデバイス100のメモリ使用量メトリクスのセットを監視することができる(300)。本明細書で説明するように、メモリ使用量メトリクスは、実行中のアプリケーションによって現在使用されているメモリのサイズ、コンピューティングデバイス100の総システム空きメモリ、および/または総システムサイズに対するシステム空きメモリの比率を含むことができる。
様々な実装形態では、コンピューティングデバイス100は、コンピューティングデバイス100の履歴メモリ使用量データ134を分析することができる(305)。具体的には、コンピューティングデバイス100は、実行中のアプリケーションの履歴メモリ使用量データを分析することができる(307)。特定の態様では、履歴データ134は、ユーザによる以前のアプリケーション使用量セッションを含むことができる、または現在よりも前の一定量の時間(例えば、過去N秒)を含むことができる(309)。メモリ使用量メトリクスのセットおよび履歴データ134に基づいて、コンピューティングデバイス100は、臨界メモリ閾値が(例えば、次の20秒以内に)超えられるかどうかを決定または予測することができる(310)。例えば、コンピューティングデバイス100は、履歴メモリ使用量データ134、現在の使用量データ132、および現在のメモリメトリクスを利用して、将来のある時点で臨界メモリ閾値を超えるかどうかを予測することができる。このような決定は、確率的な計算を含むことができ、「はい」は、特定の閾値(例えば、90%)を超える確率を含むことができ、一方、「いいえ」は、当該閾値を下回る任意のものでよいと考えられる。
コンピューティングデバイスが、臨界メモリ閾値を超えないと判断した場合(312)、コンピューティングデバイス100は、それに応じてメモリ使用量メトリクスのセットの監視を継続することができる(300)。しかしながら、コンピューティングデバイスが、臨界メモリ閾値を超えると判断した場合(314)、コンピューティングデバイス100は、実行中のアプリケーションの特定の機能を低下および/または非アクティブ化させることができる(315)。例えば、コンピューティングデバイス100は、アプリケーションのコンテンツレンダリングレートを低下させ(316)、1つまたは複数のメモリ集中型機能をシャットダウンし(317)、および/またはディスプレイ160上のコンテンツの解像度を低下させることができる(318)。
図4は、様々な実施例による、実行中のアプリケーションの所定の現在および/または履歴メモリ使用量データのメモリ使用量を管理する別の例示的な方法を説明するフローチャートである。図4を参照すると、コンピューティングデバイス100は、コンピューティングデバイス100のシステム空きメモリを決定することができる(400)。コンピューティングデバイス100は、さらに、コンピューティングデバイス100の総メモリに対するシステム空きメモリの比率を、周期的または継続的に決定することができる(405)。 コンピューティングデバイス100は、一連の階層的なメモリ圧力レベル閾値に基づいて、比率を監視することができる(410)。一例では、コンピューティングデバイス100は、実行中のアプリケーションによって使用されているメモリ量と、コンピューティングデバイス100で利用可能なシステム空きメモリとの比率を監視することができる。追加的または代替的に、コンピューティングデバイス100は、OSメモリ使用量警告システムを含むことができ、これを利用して、1つまたは複数のメモリ圧力閾値を超えるかどうかを予測することができる。メモリ使用率に少なくとも部分的に基づいて、コンピューティングデバイス100は、将来のある時点で第1のメモリ圧力閾値を超えるかどうかを決定または予測することができる(415)。そうでなければ(417)、コンピューティングデバイス100は、比率および/または他のメモリメトリクスを適宜監視し続けることができる(410)。
しかしながら、第1のメモリ圧力閾値を超えると予測される場合(419)、コンピューティングデバイス100は、本明細書に記載されているように、第1階層のアプリケーション機能のセットを劣化および/または非アクティブ化することができる(430)。次いで、コンピューティングデバイス100は、メモリメトリクスおよび/またはメモリ使用量の比率の監視を継続してもよい(410)。コンピューティングデバイス100は、将来のある瞬間に次のメモリ圧力閾値を超えるかどうかを判断してもよい(415)。そうでなければ(417)、コンピューティングデバイス100は、監視を継続する(410)。しかしながら、そうであれば(429)、コンピューティングデバイス100は、アプリケーション機能の次の階層を劣化および/または非アクティブ化することができる(435)。その後、コンピューティングデバイス100は、それに応じて監視を継続することができる(410)。
プロセスステップ(435)、(410)、および(415)からのループは、アウトオブメモリクラッシュの脅威が緩和されるまで、またはコンピューティングデバイス100が公称メモリ条件に戻るまで継続することができると考えらえる。メモリ圧力閾値が順次に超過される必要はなく、むしろ予測が、任意のメモリ圧力閾値が将来の瞬間において超過されることを示すことができ、本明細書に記載されているように、対応するすべての階層的に階層化されたアプリケーション機能上でメモリ削減アクションを実行することができることがさらに企図されている。
ハードウェア略図
図5は、本明細書に記載された実施例が実装され得るコンピューティングデバイスを示すブロック図である。様々な実装形態において、コンピューティングデバイス500は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、VRまたはARヘッドセットデバイスなどの、モバイルコンピューティングデバイスを含むことができる。このように、コンピューティングデバイス500は、マイク545、カメラ550、および任意の数のワイヤレス通信プロトコルを使用して外部実体と通信するための通信インターフェース510などの電話通信(telephony)機能を含むことができる。コンピューティングデバイス500はさらに、測位モジュール560(例えば、GPS受信機)、および、1つまたは複数の加速度計、ジャイロスコープ、または磁力計を含む慣性測定ユニット564を含むことができる。
特定の態様では、コンピューティングデバイス500は、サービスアプリケーション532およびアプリケーションマネージャ534をローカルメモリ530に格納することができる。変形例では、メモリ530は、コンピューティングデバイス500の1つまたは複数のプロセッサ540によって実行可能な追加のアプリケーションを格納することができ、1つまたは複数のネットワーク580を介して1つまたは複数のホストサーバとのアクセスおよび相互作用を可能にする。特定の実施例では、アプリケーションマネージャ534は、本開示全体を通して説明されているように、メモリ監視およびアプリケーション管理機能を含むことができる。さらに、アプリケーションマネージャ534は、サービスアプリケーション532自体のコンポーネントであってもよいし、サービスアプリケーション532のメモリ管理機能として統合されていてもよい。そのような実施例では、アプリケーションマネージャ534は、コンピューティングデバイス500のOS低メモリ警告システムからのメモリ警告、並びにサービスアプリケーション532のメモリ使用量メトリクス(例えば、履歴メモリ使用量データおよび現在のメモリ使用量データ)を、入力として受け取ることができる。
変形例では、アプリケーションマネージャ534は、コンピューティングデバイス500のオペレーティングシステムのコンポーネントを含むことができる。このように、アプリケーションマネージャ534は、コンピューティングデバイス500上のすべての実行中のアプリケーションを監視するように機能することができ、各実行中のアプリケーションに対して本明細書に記載されているメモリ管理技術を実装することができることが企図されている。
ユーザによるユーザ入力518(例えば、指定アプリケーション532を表すアイコンの選択)に応答して、サービスアプリケーション532は、プロセッサ540によって実行されてもよく、これによって、コンピューティングデバイス500のディスプレイスクリーン520上に表示インターフェース522を生成させ得る。様々な実装形態において、表示インターフェース522は、ユーザが表示インターフェース522上の表示されたコンテンツを見るおよび/またはそれと対話することを可能にし得る。さらに、アプリケーションマネージャ534は、起動中のサービスアプリケーション532に基づいて開始することができる。
様々な実施例では、測位モジュール560は、例えば、コンピューティングシステム590がサービスアプリケーション532のコンテンツを表示インターフェース522に提供することを可能にするために、ユーザの現在地を示す位置データをリモートコンピューティングシステム590(例えば、サービスアプリケーション532のホストサーバ)に提供することができる。さらなる実装形態では、コンピューティングデバイス500は、カメラ550からの画像データ、マイクロフォン545からの音声データ、およびIMU 564からのIMUデータなどの追加のセンサデータをコンピューティングシステム590に送信することもできる(例えば、連続的または周期的に)。
本明細書に記載されている例は、本明細書に記載されている技術を実装するためのコンピューティングデバイス500の使用に関するものである。一例によれば、これらの技術は、プロセッサ540が、主メモリ530に収容されている1つまたは複数の命令の1以上のシーケンスを実行することに応答して、コンピューティングデバイス500によって行われる。そのような命令は、記憶装置のような別の機械可読媒体から主メモリ530に読み込まれてもよい。主メモリ530に収容されている命令のシーケンスが実行されると、プロセッサ510は、本明細書に記載されている処理ステップを行う。別の実装形態では、本明細書に記載されている例を実装するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路が用いられ得る。従って、記載されている例は、ハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
本明細書に記載されている例は、他の概念、アイデア、またはシステムとは独立して、本明細書に記載されている個々の要素および概念に及ぶこと、並びに、例えば、本願のどこかに記載されている要素の組合せを含むことが意図される。本明細書において、添付の図面を参照して複数の例を詳細に説明したが、本概念は、これらの正確な例に限定されないことを理解されたい。従って、当業者には、多くの修正および変形が自明であろう。従って、本概念の範囲は、以下の特許請求の範囲およびそれらの等価物によって定められることが意図される。さらに、個々にまたは例の一部として記載された特定の特徴は、たとえ他の特徴および例がその特定の特徴について言及していない場合であっても、他の個々に記載された特徴、または他の例の一部と組み合わされ得ることが意図される。従って、組合せが記載されていないことによって、そのような組合せに対する権利を主張することを排除すべきではない。
100、500 コンピューティングデバイス
120 メモリモニタ
130、530 メモリ
140 アプリケーションマネージャ
150 センサ
160 ディスプレイ
520 ディスプレイスクリーン
540 プロセッサ

Claims (20)

  1. ディスプレイスクリーン;
    1つまたは複数のプロセッサ;および
    命令を記憶する1つまたは複数のメモリリソース
    を備えるコンピューティングデバイスであって、
    前記命令は、前記1つまたは複数のプロセッサにより実行される際に、前記コンピューティングデバイスに
    ユーザがネットワークベースのサービスにアクセスすることを可能にし、アプリケーション機能の複数の優先階層を含む、クライアント側アプリケーションが前記コンピューティングデバイス上で実行されている間に、前記コンピューティングデバイスのメモリ使用量メトリクスのセットを監視させ、
    履歴メモリ使用量データおよび前記コンピューティングデバイスの前記メモリ使用量メトリクスのセットに基づいて、メモリ使用量が将来時点において臨界メモリ閾値を超えるかどうかを判断させ、
    前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるとの判断に応答して、前記複数の優先階層の最低優先階層に対応する第1のセットのアプリケーション機能を劣化させる、
    コンピューティングデバイス。
  2. 前記実行された命令がさらに、前記コンピューティングデバイスに
    前記ディスプレイスクリーン上に前記クライアント側アプリケーションのストリーミングコンテンツを表示させ、
    前記実行された命令が、前記コンピューティングデバイスに、前記ストリーミングコンテンツのコンテンツレンダリングレートの低減により前記第1のセットのアプリケーション機能を劣化させる、
    ことを特徴とする、請求項1に記載のコンピューティングデバイス。
  3. 前記メモリ使用量メトリクスのセットが、前記コンピューティングデバイスの総メモリサイズおよび前記コンピューティングデバイスの現在利用できるメモリを含むことを特徴とする、請求項1に記載のコンピューティングデバイス。
  4. 前記実行された命令が、前記コンピューティングデバイスに、所定の時間に亘って前記履歴メモリ使用量データを収集させ、メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断させることを特徴とする、請求項1に記載のコンピューティングデバイス。
  5. 前記実行された命令が、前記コンピューティングデバイスに、将来の所定の期間に亘って前記履歴メモリ使用量データおよび現在のメモリ使用量データに基づいて将来のメモリ使用量を予測することにより、前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断させることを特徴とする、請求項4に記載のコンピューティングデバイス。
  6. 前記実行された命令がさらに、前記コンピューティングデバイスに、
    前記第1のセットのアプリケーション機能を劣化させる間にまたはその後に、将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかを判断させ、
    前記将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかの判断に基づいて、前記複数の優先階層の第2の優先階層において第2のセットのアプリケーション機能を劣化させる、
    ことを特徴とする、請求項1に記載のコンピューティングデバイス。
  7. 前記クライアント側アプリケーションが、ライドシェアサービスのためのドライバアプリケーションを含み、前記複数の優先階層が、ナビゲーションコンテンツ機能に対応する少なくとも1つの優先階層を含むことを特徴とする、請求項1に記載のコンピューティングデバイス。
  8. 命令を記憶する非一時的なコンピュータ可読媒体であって、
    前記命令は、コンピューティングデバイスの1つまたは複数のプロセッサにより実行される際に、前記コンピューティングデバイスに
    ユーザがネットワークベースのサービスにアクセスすることを可能にし、アプリケーション機能の複数の優先階層を含む、クライアント側アプリケーションが前記コンピューティングデバイス上で実行されている間に、前記コンピューティングデバイスのメモリ使用量メトリクスのセットを監視させ、
    履歴メモリ使用量データおよび前記コンピューティングデバイスの前記メモリ使用量メトリクスのセットに基づいて、メモリ使用量が将来時点において臨界メモリ閾値を超えるかどうかを判断させ、
    前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるとの判断に応答して、前記複数の優先階層の最低優先階層に対応する、前記クライアント側アプリケーションの第1のセットのアプリケーション機能を劣化させる、
    非一時的なコンピュータ可読媒体。
  9. 前記実行された命令がさらに、前記コンピューティングデバイスに
    前記コンピューティングデバイスのディスプレイスクリーン上に前記クライアント側アプリケーションのストリーミングコンテンツを表示させ、
    前記実行された命令が、前記コンピューティングデバイスに、前記ストリーミングコンテンツのコンテンツレンダリングレートの低減により前記第1のセットのアプリケーション機能を劣化させる、
    ことを特徴とする、請求項8に記載の非一時的なコンピュータ可読媒体。
  10. 前記メモリ使用量メトリクスのセットが、前記コンピューティングデバイスの総メモリサイズおよび前記コンピューティングデバイスの現在利用できるメモリを含むことを特徴とする、請求項8に記載の非一時的なコンピュータ可読媒体。
  11. 前記実行された命令が、前記コンピューティングデバイスに、所定の時間に亘って前記履歴メモリ使用量データを収集させ、メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断させることを特徴とする、請求項8に記載の非一時的なコンピュータ可読媒体。
  12. 前記実行された命令が、前記コンピューティングデバイスに、将来の所定の期間に亘って前記履歴メモリ使用量データおよび現在のメモリ使用量データに基づいて将来のメモリ使用量を予測することにより、前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断させることを特徴とする、請求項11に記載の非一時的なコンピュータ可読媒体。
  13. 前記実行された命令がさらに、前記コンピューティングデバイスに、
    前記第1のセットのアプリケーション機能を劣化させる間にまたはその後に、将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかを判断させ、
    前記将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかの判断に基づいて、前記複数の優先階層の第2の優先階層において第2のセットのアプリケーション機能を劣化させる、
    ことを特徴とする、請求項8に記載の非一時的なコンピュータ可読媒体。
  14. 前記クライアント側アプリケーションが、ライドシェアサービスのためのドライバアプリケーションを含み、前記複数の優先階層が、ナビゲーションコンテンツ機能に対応する少なくとも1つの優先階層を含むことを特徴とする、請求項8に記載の非一時的なコンピュータ可読媒体。
  15. コンピューティングデバイスを動作するコンピュータ実装された方法であって、コンピューティングデバイスの1つまたは複数のプロセッサにより実行され、
    ユーザがネットワークベースのサービスにアクセスすることを可能にし、アプリケーション機能の複数の優先階層を含む、クライアント側アプリケーションが前記コンピューティングデバイス上で実行されている間に、前記コンピューティングデバイスのメモリ使用量メトリクスのセットを監視する工程;
    履歴メモリ使用量データおよび前記コンピューティングデバイスの前記メモリ使用量メトリクスのセットに基づいて、メモリ使用量が将来時点において臨界メモリ閾値を超えるかどうかを判断する工程;および
    前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるとの判断に応答して、前記複数の優先階層の最低優先階層に対応する、前記クライアント側アプリケーションの第1のセットのアプリケーション機能を劣化する工程、
    を含むことを特徴とする、方法。
  16. 前記コンピューティングデバイスのディスプレイスクリーン上に前記クライアント側アプリケーションのストリーミングコンテンツを表示する工程をさらに含み、
    前記1つまたは複数のプロセッサが、前記コンピューティングデバイスに、前記ストリーミングコンテンツのコンテンツレンダリングレートの低減により前記第1のセットのアプリケーション機能を劣化させる、
    ことを特徴とする、請求項15に記載の方法。
  17. 前記メモリ使用量メトリクスのセットが、前記コンピューティングデバイスの総メモリサイズおよび前記コンピューティングデバイスの現在利用できるメモリを含むことを特徴とする、請求項15に記載の方法。
  18. 前記1つまたは複数のプロセッサが、所定の時間に亘って前記履歴メモリ使用量データを収集し、メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断することを特徴とする、請求項15に記載の方法。
  19. 前記1つまたは複数のプロセッサが、将来の所定の期間に亘って前記履歴メモリ使用量データおよび現在のメモリ使用量データに基づいて将来のメモリ使用量を予測することにより、前記メモリ使用量が将来時点において前記臨界メモリ閾値を超えるかどうかを判断することを特徴とする、請求項18に記載の方法。
  20. 前記第1のセットのアプリケーション機能を劣化させる間にまたはその後に、将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかを判断する工程、および
    前記将来時点における前記メモリ使用量が前記臨界メモリ閾値を超えるかどうかの判断に基づいて、前記複数の優先階層の第2の優先階層において第2のセットのアプリケーション機能を劣化する工程、
    を含むことを特徴とする、請求項15に記載の方法。
JP2021533215A 2018-12-14 2019-10-29 コンピューティングデバイスのためのメモリクラッシュ防止 Active JP7309881B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/220,419 US10977105B2 (en) 2018-12-14 2018-12-14 Memory crash prevention for a computing device
US16/220,419 2018-12-14
PCT/US2019/058526 WO2020123048A1 (en) 2018-12-14 2019-10-29 Memory crash prevention for a computing device

Publications (3)

Publication Number Publication Date
JP2022511938A JP2022511938A (ja) 2022-02-01
JPWO2020123048A5 JPWO2020123048A5 (ja) 2022-10-28
JP7309881B2 true JP7309881B2 (ja) 2023-07-18

Family

ID=71071624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021533215A Active JP7309881B2 (ja) 2018-12-14 2019-10-29 コンピューティングデバイスのためのメモリクラッシュ防止

Country Status (8)

Country Link
US (3) US10977105B2 (ja)
EP (1) EP3895011A4 (ja)
JP (1) JP7309881B2 (ja)
KR (1) KR102501919B1 (ja)
CN (1) CN113454595A (ja)
AU (2) AU2019397240B2 (ja)
CA (1) CA3122503A1 (ja)
WO (1) WO2020123048A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575837B2 (en) 2015-02-03 2017-02-21 Uber Technologies, Inc. System and method for introducing functionality to an application for use with a network service
US11533226B2 (en) 2015-10-13 2022-12-20 Uber Technologies, Inc. Application service configuration system
US10158528B2 (en) 2015-10-13 2018-12-18 Uber Technologies, Inc. Application service configuration system
CN112306371A (zh) 2019-07-30 2021-02-02 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
US20240231469A9 (en) * 2022-10-21 2024-07-11 Quanta Computer Inc. Method and system for providing power saving in computer systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015892A (ja) 2001-06-29 2003-01-17 Casio Comput Co Ltd 情報端末装置及びアプリケーション管理プログラム
JP2011100338A (ja) 2009-11-06 2011-05-19 Hitachi Automotive Systems Ltd 車載用マルチアプリ実行装置
JP2013543202A (ja) 2010-11-18 2013-11-28 グーグル・インコーポレーテッド コンピューティングオブジェクトのコンテキストの履歴
JP2017524195A (ja) 2014-08-04 2017-08-24 ウーバー テクノロジーズ,インコーポレイテッド 所定の位置データ点の決定およびサービス提供者への供給

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6731600B1 (en) 1999-02-08 2004-05-04 Realnetworks, Inc. System and method for determining network conditions
US6711137B1 (en) 1999-03-12 2004-03-23 International Business Machines Corporation System and method for analyzing and tuning a communications network
FI991411A (fi) 1999-06-21 2000-12-22 Nokia Networks Oy Mikroprosessorin alkulatausohjelmiston päivittäminen
US7174547B2 (en) 2002-03-25 2007-02-06 Ciena Corporation Method for updating and restoring operating software in an active region of a network element
US7747729B2 (en) 2002-06-14 2010-06-29 Hanoch Levy Determining client latencies over a network
US20060059023A1 (en) 2002-08-02 2006-03-16 Alex Mashinsky Method system and apparatus for providing transportation services
AU2003272404A1 (en) 2002-09-16 2004-04-30 Clearcube Technology, Inc. Distributed computing infrastructure
US7216343B2 (en) 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
ATE375553T1 (de) * 2003-06-24 2007-10-15 Research In Motion Ltd Erkennung von speichermangel und feinabschaltung
EP1494119A1 (en) 2003-06-30 2005-01-05 Thomson Multimedia Broadband Belgium Network equipment and a method for monitoring the start up of a such an equipment
US7313682B2 (en) 2004-04-29 2007-12-25 Alcatel Lucent Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
US7536486B2 (en) 2004-07-30 2009-05-19 Microsoft Corporation Automatic protocol determination for portable devices supporting multiple protocols
JP2006065857A (ja) 2004-08-24 2006-03-09 Lg Electronics Inc 移動通信端末機のプログラム強制ダウンロード方法及び装置
US7908600B2 (en) 2005-06-30 2011-03-15 Oracle International Corporation Fault-tolerant patching system
US20070136402A1 (en) * 2005-11-30 2007-06-14 International Business Machines Corporation Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
US8020149B2 (en) 2006-08-04 2011-09-13 Apple Inc. System and method for mitigating repeated crashes of an application resulting from supplemental code
US7870548B2 (en) 2007-01-05 2011-01-11 Inventec Corporation Method for updating an image file
US8310920B2 (en) 2007-03-02 2012-11-13 Saratoga Data Systems, Inc. Method and system for accelerating transmission of data between network devices
TW200847021A (en) 2007-05-17 2008-12-01 Asustek Comp Inc Automatic backup, restore and update BIOS computer system
US7793161B2 (en) 2007-05-29 2010-09-07 International Business Machines Corporation Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment
US20090083111A1 (en) 2007-09-21 2009-03-26 Bob Carr Systems and Methods for Coordinating Transportation Between Riders and Volunteer Drivers
US8015280B2 (en) * 2007-10-01 2011-09-06 Ebay Inc. Method and system for intelligent feature degradation in response to a network deficiency detection
US8613096B2 (en) 2007-11-30 2013-12-17 Microsoft Corporation Automatic data patch generation for unknown vulnerabilities
US9341494B2 (en) * 2007-12-21 2016-05-17 Nokia Technologies Oy Apparatuses and methods for managing route navigation via mobile devices
US8839227B2 (en) 2008-02-29 2014-09-16 Arris Enterprises, Inc. Preventing overwrite of nonessential code during essential code update
JP2010198155A (ja) 2009-02-24 2010-09-09 Fujitsu Ten Ltd プログラム更新装置、プログラム更新方法、及び情報処理装置
US8856294B2 (en) 2009-06-01 2014-10-07 Oracle International Corporation System and method for converting a Java application into a virtual server image for cloud deployment
US8639787B2 (en) 2009-06-01 2014-01-28 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
US8776053B2 (en) 2009-09-25 2014-07-08 Oracle International Corporation System and method to reconfigure a virtual machine image suitable for cloud deployment
US20110119370A1 (en) 2009-11-17 2011-05-19 Microsoft Corporation Measuring network performance for cloud services
US9098333B1 (en) 2010-05-07 2015-08-04 Ziften Technologies, Inc. Monitoring computer process resource usage
US20110320794A1 (en) 2010-06-28 2011-12-29 Chung-Jen Yang Flash System And Method For Updating The Flash System
WO2012048007A2 (en) 2010-10-05 2012-04-12 Citrix Systems, Inc. Touch support for remoted applications
US9965094B2 (en) 2011-01-24 2018-05-08 Microsoft Technology Licensing, Llc Contact geometry tests
US9722887B2 (en) 2011-03-15 2017-08-01 Verizon Patent And Licensing Inc. Adaptive quality of service (QoS) based on application latency requirements
US8943220B2 (en) 2011-08-04 2015-01-27 Microsoft Corporation Continuous deployment of applications
US20130254121A1 (en) * 2012-03-22 2013-09-26 International Business Machines Corporation Software Portfolio Management Based on Feature Usage
US9129532B2 (en) 2012-04-24 2015-09-08 Zetta Research and Development LLC, ForC series Hybrid protocol transceiver for V2V communication
US9253753B2 (en) 2012-04-24 2016-02-02 Zetta Research And Development Llc-Forc Series Vehicle-to-vehicle safety transceiver using time slots
US20130278441A1 (en) 2012-04-24 2013-10-24 Zetta Research and Development, LLC - ForC Series Vehicle proxying
US9300423B2 (en) 2012-04-24 2016-03-29 Zetta Research and Development LLC—ForC Series Device for synchronizing a time base for V2V communictation
JP5921358B2 (ja) 2012-06-21 2016-05-24 キヤノン株式会社 情報処理装置、プログラム更新方法及びプログラム
US8904162B2 (en) 2012-08-01 2014-12-02 Intel Corporation Methods and apparatus for performing secure BIOS upgrade
JP5972121B2 (ja) 2012-09-07 2016-08-17 キヤノン株式会社 アプリケーション管理システム、管理装置、アプリケーション実行端末、アプリケーション管理方法、アプリケーション実行端末の制御方法及びプログラム
US8594850B1 (en) 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
CN103577306A (zh) 2013-11-04 2014-02-12 浪潮(北京)电子信息产业有限公司 云平台中主动式探测的高可用软件运行方法
US9806960B2 (en) 2013-11-25 2017-10-31 Google Inc. Method and system for adjusting heavy traffic loads between personal electronic devices and external services
US9887914B2 (en) 2014-02-04 2018-02-06 Fastly, Inc. Communication path selection for content delivery
US10044609B2 (en) 2014-02-04 2018-08-07 Fastly, Inc. Communication path selection for content delivery
WO2015192045A2 (en) * 2014-06-13 2015-12-17 Pivotal Software, Inc. Precisely tracking memory usage in multi-process computing environment
US9454454B2 (en) * 2014-09-09 2016-09-27 Microsoft Technology Licensing, Llc Memory leak analysis by usage trends correlation
US9575837B2 (en) 2015-02-03 2017-02-21 Uber Technologies, Inc. System and method for introducing functionality to an application for use with a network service
US9225625B1 (en) * 2015-03-26 2015-12-29 Linkedin Corporation Detecting and alerting performance degradation during features ramp-up
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10594580B2 (en) 2015-08-03 2020-03-17 Avago Technologies International Sales Pte. Limited Network function virtualization management system
US10101910B1 (en) 2015-09-15 2018-10-16 Amazon Technologies, Inc. Adaptive maximum limit for out-of-memory-protected web browser processes on systems using a low memory manager
US11533226B2 (en) 2015-10-13 2022-12-20 Uber Technologies, Inc. Application service configuration system
US10158528B2 (en) 2015-10-13 2018-12-18 Uber Technologies, Inc. Application service configuration system
US20180129537A1 (en) 2016-11-10 2018-05-10 Microsoft Technology Licensing, Llc Managing memory usage using soft memory targets
US10768990B2 (en) * 2018-11-01 2020-09-08 International Business Machines Corporation Protecting an application by autonomously limiting processing to a determined hardware capacity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015892A (ja) 2001-06-29 2003-01-17 Casio Comput Co Ltd 情報端末装置及びアプリケーション管理プログラム
JP2011100338A (ja) 2009-11-06 2011-05-19 Hitachi Automotive Systems Ltd 車載用マルチアプリ実行装置
JP2013543202A (ja) 2010-11-18 2013-11-28 グーグル・インコーポレーテッド コンピューティングオブジェクトのコンテキストの履歴
JP2017524195A (ja) 2014-08-04 2017-08-24 ウーバー テクノロジーズ,インコーポレイテッド 所定の位置データ点の決定およびサービス提供者への供給

Also Published As

Publication number Publication date
US11687389B2 (en) 2023-06-27
EP3895011A4 (en) 2022-08-03
CA3122503A1 (en) 2020-06-18
WO2020123048A1 (en) 2020-06-18
US20220291980A1 (en) 2022-09-15
KR102501919B1 (ko) 2023-02-20
US20210165702A1 (en) 2021-06-03
EP3895011A1 (en) 2021-10-20
US11379283B2 (en) 2022-07-05
AU2019397240A1 (en) 2021-06-24
CN113454595A (zh) 2021-09-28
AU2019397240B2 (en) 2023-11-02
KR20210114408A (ko) 2021-09-23
US10977105B2 (en) 2021-04-13
AU2024200641A1 (en) 2024-02-29
JP2022511938A (ja) 2022-02-01
US20200192734A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
JP7309881B2 (ja) コンピューティングデバイスのためのメモリクラッシュ防止
US11686586B2 (en) Facilitating rider pick-up for a transport service
KR101852651B1 (ko) 애플리케이션 통지
US8913730B2 (en) Communication system with message prioritization mechanism and method of operation thereof
CA2925696C (en) Determining location information using a location data point provided by a computing device
US12010192B2 (en) Adjusting attributes for an on-demand service system based on real-time information
US8023964B2 (en) Predictive mobile phone service disruption service
US20170048305A1 (en) Method, apparatus and computer-readable medium for displaying multimedia information in an application client
US10511935B2 (en) Location based information service application
US9264318B2 (en) Synchronized distributed networks with frictionless application installation
CN108762983B (zh) 多媒体数据恢复方法及装置
CN109992363B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
US20220020106A1 (en) Dynamic pickup point re-ranking system
US20220164153A1 (en) Methods, systems, and devices for adjusting content layers within media content
EP3559779A2 (en) Method for operating a device having a switchable power saving mode for reducing its power consumption
CN113127688A (zh) 头戴式设备的数据传输方法及装置
WO2018191946A1 (en) Method for operating a device having a switchable power saving mode for reducing its power consumption
CN116095230B (zh) 应用程序推荐方法和终端设备、可读存储介质
CN117632460A (zh) 一种负载调节方法及终端设备
CN116419370A (zh) 网络管理方法、介质、程序产品及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221020

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230705

R150 Certificate of patent or registration of utility model

Ref document number: 7309881

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150