JP2015507310A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2015507310A5 JP2015507310A5 JP2014557678A JP2014557678A JP2015507310A5 JP 2015507310 A5 JP2015507310 A5 JP 2015507310A5 JP 2014557678 A JP2014557678 A JP 2014557678A JP 2014557678 A JP2014557678 A JP 2014557678A JP 2015507310 A5 JP2015507310 A5 JP 2015507310A5
- Authority
- JP
- Japan
- Prior art keywords
- code
- source
- source code
- compiled
- store
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims 5
- 230000004044 response Effects 0.000 claims 1
Claims (13)
- 少なくとも部分的にコンピューターによりインプリメントされる方法であって、
ソース・コードを含むソフトウェアを実行するリクエストを受け取るステップであって、前記ソース・コードは、スクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ステップと、
前記リクエストに応答して、第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップであって、前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されているかどうかを判定するステップは、前記不揮発性ストレージの既知の場所において前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所へはネットワークを介して到達可能である、ステップと、
前記リクエストを受け取る前に前記第2のコードが既に生成されていた場合に、
前記第2のコードを得るステップと
前記第2のコード又はそこから導き出されたコードを実行するステップを含む、第1組のアクションを実行するステップと、
前記リクエストを受け取る前に前記第2のコードがまだ生成されていない場合に、
前記ソース・コードを得るステップと、
前記ソース・コードから第2のコードを生成するステップと、
前記第2のコード又はそこから導き出されたコードを実行するステップと
を含む、第2組のアクションを実行するステップと、
前記リクエストを受け取る前に前記第2のコードがまだ生成されていない場合に、
前記第2のコードを、前記ソフトウェアを後に実行する際に使用するために、前記不揮発性ストレージに格納するステップと、
前記第2のコードを含むファイルをメモリ・マッピングし、該メモリ・マッピングを介して複数のプロセスで前記ファイルを共有するステップと、
を含む第3組のアクションを実行するステップと
を含む、方法。 - 前記第3組のアクションを実行するステップは、
前記ソース・コードを再び得るステップと、
前記ソース・コードから前記第2のコードを再び生成するステップと
をさらに含む、請求項1に記載の方法。 - 前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップは、
前記不揮発性ストレージの既知の場所で前記第2のコードを検査するステップをさらに含み、前記既知の場所は前記ソース・コードを含むパッケージの名前に対応し、前記パッケージは前記不揮発性ストレージをホストするターゲット・システムにインストールされている、請求項1に記載の方法。 - 前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップは、
前記不揮発性ストレージからデータを得るステップをさらに含み、前記データは前記パッケージに対するバイトコードを前記パッケージに対するソース・コードと並べて配するファイルの一部であり、前記データは前記第2のコードが既に生成されてファイルに格納されているかどうかを示す、請求項1に記載の方法。 - 前記第2のコードが、生成された後に変更されたかを検査するステップをさらに含み、そうである場合に、
前記ソース・コードを再び得るステップと、
前記ソース・コードから前記第2のコードを再び生成するステップと、
前記第2のコードを、前記ソフトウェアを後に実行する際に使用するために、前記不揮発性ストレージに格納するステップと、
を含む請求項1に記載の方法。 - 計算環境におけるシステムであって、
メモリに結合された処理ユニットを備えるコンピューターを備え、前記メモリは、
ソフトウェアのソース・コードを含むパッケージのデータを格納するように動作するストアであって、前記パッケージはソフトウェアのソース・コードを含み、前記ソース・コードはスクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ストアと、
前記ストアに前記パッケージをインストールするように動作するインストーラーであって、前記ソース・コードが第2のコードへとコンパイルされることを示すようにデータ構造をアップデートするように更に動作するインストーラーと、
前記ソース・コードが前記第2のコードへとコンパイルされることを、前記データ・構造において示すこと基づいて、前記ソース・コードを識別するために前記データ構造を検査するように、および前記ソース・コードを前記第2のコードへとコンパイルするように動作するコード・ジェネレーターと、
前記第2のコードを前記ストアへ永続的に格納するように、および前記ストアの前記第2のコードへのアクセスを提供するように動作するキャッシュ・マネージャーと、
前記ソフトウェアを実行するリクエストを受け取るように動作し、且つ前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしているかどうかを判定するように動作する実行マネージャーであって、前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしていると判定することは、不揮発性ストレージの既知の場所で前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所はネット-枠を介して到達可能であり、
コンパイルしていた場合、
前記第2のコードを得ることと、
前記第2のコード又はそれから導き出されたコードを実行することと
を含むアクションを行い、
コンパイルしていない場合、
前記ソース・コードを得ることと、
前記ソース・コードが前記第2のコードへとコンパイルされるようにすることと、
前記ソース・コード又はそれから導き出されたコードを実行することと
を含むアクションを行う
実行マネージャーと
を含むシステム。 - 前記実行マネージャーは、さらに前記リクエストが受け取られる前に前記コード・ジェネレーターがまだ前記ソース・コードを前記第2のコードへコンパイルしていない場合に、遅滞なく前記第2のコートを生成させるように操作可能である、請求項6に記載のシステム。
- 前記コード・ジェネレーターは、前記システムが他のパッケージをインストールしていないとき又は前記システムの処理帯域を消費する他のタスクを実行していないときに行うプロセスとして実行される、請求項6に記載のシステム。
- 前記コード・ジェネレーターは、1日のうちの構成可能な時間に行うプロセスとして実行される、請求項6に記載のシステム。
- デバイスであって、
処理ユニットと、
ソフトウェアのソース・コードを含むパッケージのデータを格納するよう構成されたストアであって、前記ソース・コードは、スクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ストアと、
前記パッケージを前記ストアにインストールするよう構成されたインストーラーであって、該インストーラーは、前記ソース・コードが第2のコードへとコンパイルされることを示すようにデータ構造をアップデートするよう操作可能である、インストーラーと、
前記ソース・コードが第2のコードへとコンパイルされることを前記データ構造において示すことに基づいて、前記ソース・コードを識別するために前記データ構造をけんさするように、及び前記ソースコートを前記第2のコードへとコンパイルするように構成されたコード・ジェネレーターと、
前記第2のコードを前記ストアへ永続的に格納するように、および前記ストアの前記第2のコードへのアクセスを提供するように構成されたキャッシュ・マネージャーと、
前記ソフトウェアを実行するリクエストを受け取るように構成され、且つ前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしたかどうかを判定するように構成された実行マネージャーであって、前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしたかを判定することは、不揮発性ストレージの既知の場所で前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所はネットワークを介して到達可能であり、
コンパイルしていた場合、
前記第2のコードを得ることと、
前記第2のコード又はそれから導き出されたコードを実行することと
を含むアクションを行い、
コンパイルしていない場合、
前記ソース・コードを得ることと、
前記ソース・コードが前記第2のコードへとコンパイルされるようにすることと、
前記ソース・コード又はそれから導き出されたコードを実行することと
を含むアクションを行う
実行マネージャーと
を含むデバイス。 - 前記リクエストを受け取る前に前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへとまだコンパイルしていない場合に、前記実行マネージャーは、さらに遅延なく前記第2のコートを生成させるようにさらに構成される、請求項10に記載のデバイス。
- 前記システムが他のパッケージをインストールしていないとき又は前記システムの処理帯域を消費する他のタスクを実行していないときに行うプロセスとして、前記コード・マネージャーが実行される、請求項10に記載のデバイス。
- 前記コード・ジェネレーターは、1日のうちの構成可能な時間に行うプロセスとして実行される、請求項10に記載のデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/371,479 US9110751B2 (en) | 2012-02-13 | 2012-02-13 | Generating and caching software code |
US13/371,479 | 2012-02-13 | ||
PCT/US2013/024559 WO2013122758A1 (en) | 2012-02-13 | 2013-02-04 | Generating and caching software code |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015507310A JP2015507310A (ja) | 2015-03-05 |
JP2015507310A5 true JP2015507310A5 (ja) | 2016-03-24 |
JP6195849B2 JP6195849B2 (ja) | 2017-09-13 |
Family
ID=48946742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014557678A Active JP6195849B2 (ja) | 2012-02-13 | 2013-02-04 | ソフトウェア・コードの生成およびキャッシング |
Country Status (11)
Country | Link |
---|---|
US (3) | US9110751B2 (ja) |
EP (1) | EP2815309B1 (ja) |
JP (1) | JP6195849B2 (ja) |
KR (1) | KR101966754B1 (ja) |
CN (1) | CN104137057B (ja) |
AU (1) | AU2013219875B2 (ja) |
BR (1) | BR112014019783B1 (ja) |
CA (1) | CA2861426C (ja) |
MX (1) | MX336964B (ja) |
RU (1) | RU2646329C2 (ja) |
WO (1) | WO2013122758A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110751B2 (en) | 2012-02-13 | 2015-08-18 | Microsoft Technology Licensing, Llc | Generating and caching software code |
US9104434B2 (en) | 2013-12-20 | 2015-08-11 | Microsoft Technology Licensing, Llc | Property accesses in dynamically typed programming languages |
US9207914B2 (en) | 2013-12-20 | 2015-12-08 | Microsoft Technology Licensing, Llc | Execution guards in dynamic programming |
US9442707B2 (en) * | 2014-06-25 | 2016-09-13 | Microsoft Technology Licensing, Llc | Incremental whole program compilation of code |
US9772824B2 (en) * | 2015-03-25 | 2017-09-26 | International Business Machines Corporation | Program structure-based blocking |
US9811324B2 (en) * | 2015-05-29 | 2017-11-07 | Google Inc. | Code caching system |
US10055208B2 (en) * | 2015-08-09 | 2018-08-21 | Oracle International Corporation | Extending a virtual machine instruction set architecture |
US9690360B2 (en) * | 2015-08-13 | 2017-06-27 | Intel Corporation | Technologies for discontinuous execution by energy harvesting devices |
US9696973B1 (en) * | 2016-02-24 | 2017-07-04 | Semmle Limited | Compilation cache with imports scanner |
CN108304189B (zh) * | 2016-08-29 | 2021-03-12 | 迈普通信技术股份有限公司 | 多镜像设备软件编译方法、装置及设备 |
US10311217B2 (en) * | 2016-12-09 | 2019-06-04 | Microsoft Technology Licensing, Llc | Application piracy prevention with secure enclave protection of automatically modularized functions |
JP2018101240A (ja) * | 2016-12-20 | 2018-06-28 | 株式会社ミロク情報サービス | キャッシュ管理プログラム、キャッシュ管理装置及びキャッシュ管理方法 |
JP7030426B2 (ja) * | 2017-05-31 | 2022-03-07 | キヤノン株式会社 | 画像形成装置及びその制御方法、並びにプログラム |
CN107341007B (zh) * | 2017-06-20 | 2020-08-11 | 深圳创维-Rgb电子有限公司 | 显示终端及其定时开机方法、计算机可读存储介质 |
US10749740B2 (en) * | 2017-10-31 | 2020-08-18 | Hewlett Packard Enterprise Development Lp | Deploying network-based cloud platforms on end equipment |
US10606613B2 (en) * | 2018-05-31 | 2020-03-31 | Bank Of America Corporation | Integrated mainframe distributed orchestration tool |
RU2691834C1 (ru) * | 2018-07-11 | 2019-06-18 | Михаил Сергеевич Герман | Способ управления данными веб-сайта |
CN108984183A (zh) * | 2018-08-28 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种软件跨地域构建方法、装置、设备及存储介质 |
KR101967840B1 (ko) * | 2019-03-05 | 2019-08-13 | (주) 피플아이 | 패키지 소프트웨어 생성 장치 |
US11150915B2 (en) | 2019-09-13 | 2021-10-19 | International Business Machines Corporation | Deferred bytecode class verification in managed runtime environments |
CN110990019B (zh) * | 2019-11-20 | 2023-05-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Java类分析方法、装置、存储介质及电子设备 |
US11403075B2 (en) | 2019-11-25 | 2022-08-02 | International Business Machines Corporation | Bytecode verification using class relationship caching |
FR3105854A1 (fr) * | 2019-12-31 | 2021-07-02 | Stmicroelectronics (Rousset) Sas | Système embarqué |
FR3105853B1 (fr) | 2019-12-31 | 2023-01-06 | Proton World Int Nv | Système embarqué |
CN111770170B (zh) | 2020-06-29 | 2023-04-07 | 北京百度网讯科技有限公司 | 请求处理方法、装置、设备和计算机存储介质 |
US11829751B1 (en) * | 2020-12-23 | 2023-11-28 | Synopsys, Inc. | System and method for automatically capturing source code and associated artifacts for static analysis |
CN113326046B (zh) * | 2021-05-26 | 2023-09-26 | 网易(杭州)网络有限公司 | 获取编译时长的方法和装置 |
CN113791770B (zh) * | 2021-11-15 | 2022-06-21 | 北京壁仞科技开发有限公司 | 代码编译器、代码编译方法、代码编译系统和计算机介质 |
CN117130618A (zh) * | 2023-06-13 | 2023-11-28 | 东信和平科技股份有限公司 | 智能卡可执行文件的增量编译方法、装置、设备 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5182806A (en) * | 1989-06-30 | 1993-01-26 | Digital Equipment Corporation | Incremental compiler for source-code development system |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
JP2004528626A (ja) * | 2001-02-02 | 2004-09-16 | オープンティブイ・インコーポレーテッド | インタラクティブ・テレビジョンのインタープリタ言語のコンパイルの方法および装置 |
US7243346B1 (en) * | 2001-05-21 | 2007-07-10 | Microsoft Corporation | Customized library management system |
US6715134B2 (en) * | 2002-03-04 | 2004-03-30 | Sun Microsystems, Inc. | Method and apparatus to facilitate generating simulation modules for testing system designs |
JP2005530238A (ja) * | 2002-06-12 | 2005-10-06 | アイ−ロジックス・インコーポレイテッド | 動的モデル/コード結合を提供するシステム、方法、および媒体 |
US7162628B2 (en) * | 2002-07-23 | 2007-01-09 | Cisco Technology, Inc. | Method, system, apparatus and program product for temporary personalization of a computer terminal |
US7246346B2 (en) * | 2002-09-17 | 2007-07-17 | Microsoft Corporation | System and method for persisting dynamically generated code in a directly addressable and executable storage medium |
US20040123278A1 (en) * | 2002-12-23 | 2004-06-24 | Murthi Nanja | Persistent cache apparatus and methods |
US7103723B2 (en) * | 2003-02-25 | 2006-09-05 | Intel Corporation | Priority-based code cache management |
US20040236824A1 (en) * | 2003-05-23 | 2004-11-25 | Millington Bradley D. | Post-cache substitution |
KR100518584B1 (ko) * | 2003-07-12 | 2005-10-04 | 삼성전자주식회사 | 공유 라이브러리 시스템 및 상기 시스템 구축 방법 |
US7313792B2 (en) * | 2003-09-08 | 2007-12-25 | Microsoft Corporation | Method and system for servicing software |
US7596554B2 (en) | 2003-12-09 | 2009-09-29 | International Business Machines Corporation | System and method for generating a unique, file system independent key from a URI (universal resource indentifier) for use in an index-less voicexml browser caching mechanism |
CA2465155C (en) | 2004-04-21 | 2008-12-09 | Ibm Canada Limited-Ibm Canada Limitee | Recommendations for intelligent data caching |
EP1669855A1 (en) | 2004-12-02 | 2006-06-14 | Deutsche Thomson-Brandt Gmbh | Method for generating multi-language menus |
US20060136907A1 (en) * | 2004-12-20 | 2006-06-22 | Microsoft Corporation | Language-neutral and language-specific installation packages for software setup |
US20060277250A1 (en) * | 2005-06-03 | 2006-12-07 | Sebastien Cherry | Methods and systems for checking accessibility of web applications |
WO2007076629A1 (en) * | 2005-12-30 | 2007-07-12 | Intel Corporation | Type checking for object-oriented programming languages |
US8225192B2 (en) * | 2006-10-31 | 2012-07-17 | Microsoft Corporation | Extensible cache-safe links to files in a web page |
US9112808B2 (en) * | 2007-02-06 | 2015-08-18 | At&T Intellectual Property Ii, L.P. | Devices, systems, and methods for providing data |
US9460229B2 (en) * | 2007-10-15 | 2016-10-04 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US8572065B2 (en) * | 2007-11-09 | 2013-10-29 | Microsoft Corporation | Link discovery from web scripts |
CN101226472A (zh) * | 2008-02-03 | 2008-07-23 | 俞啟茂 | 一种遥控器代码生成方法 |
US8046779B2 (en) | 2008-02-27 | 2011-10-25 | Sap Ag | Dynamic resolution of dependent components |
KR100960111B1 (ko) | 2008-07-30 | 2010-05-27 | 한국전자통신연구원 | 리버스 캐싱 프록시를 이용한 웹 기반의 역추적 시스템 |
US8752016B2 (en) * | 2008-12-15 | 2014-06-10 | Apple Inc. | Converting JavaScript into a device-independent representation |
US20100299661A1 (en) * | 2009-05-25 | 2010-11-25 | International Business Machines Corporation | Load-Time Code Optimization In a Computing Environment |
US20110087966A1 (en) * | 2009-10-13 | 2011-04-14 | Yaniv Leviathan | Internet customization system |
US8984009B2 (en) | 2010-04-21 | 2015-03-17 | Salesforce.Com, Inc. | Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems |
KR101689745B1 (ko) * | 2010-09-06 | 2016-12-27 | 삼성전자주식회사 | 스크립트에 의한 동적 리소스 정보를 처리하는 웹 브라우징 시스템 및 방법 |
KR20120083803A (ko) * | 2011-01-18 | 2012-07-26 | 삼성전자주식회사 | 가상머신을 위한 추가코드 생성장치 및 방법 |
US8880991B2 (en) * | 2011-04-21 | 2014-11-04 | Qualcomm Innovation Center, Inc. | Methods and apparatus for improved browsing performance by precompilation of high-priority JavaScripts in a webpage and delaying the removal of corresponding compiled code |
US9110751B2 (en) | 2012-02-13 | 2015-08-18 | Microsoft Technology Licensing, Llc | Generating and caching software code |
-
2012
- 2012-02-13 US US13/371,479 patent/US9110751B2/en active Active
-
2013
- 2013-02-04 AU AU2013219875A patent/AU2013219875B2/en active Active
- 2013-02-04 WO PCT/US2013/024559 patent/WO2013122758A1/en active Application Filing
- 2013-02-04 KR KR1020147022492A patent/KR101966754B1/ko active IP Right Grant
- 2013-02-04 EP EP13748809.4A patent/EP2815309B1/en active Active
- 2013-02-04 CA CA2861426A patent/CA2861426C/en active Active
- 2013-02-04 BR BR112014019783-0A patent/BR112014019783B1/pt active IP Right Grant
- 2013-02-04 RU RU2014133160A patent/RU2646329C2/ru active
- 2013-02-04 JP JP2014557678A patent/JP6195849B2/ja active Active
- 2013-02-04 MX MX2014009761A patent/MX336964B/es active IP Right Grant
- 2013-02-04 CN CN201380009208.3A patent/CN104137057B/zh active Active
-
2015
- 2015-07-16 US US14/801,488 patent/US9940120B2/en active Active
-
2018
- 2018-04-10 US US15/949,177 patent/US10963233B2/en active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015507310A5 (ja) | ||
Sen et al. | Jalangi: A selective record-replay and dynamic analysis framework for JavaScript | |
Ainsworth et al. | Software prefetching for indirect memory accesses | |
JP6195849B2 (ja) | ソフトウェア・コードの生成およびキャッシング | |
US8843912B2 (en) | Optimization of an application to reduce local memory usage | |
US8954678B2 (en) | Automatic pattern-based operand prefetching | |
JP2015526827A5 (ja) | ||
US9189360B2 (en) | Processor that records tracing data in non contiguous system memory slices | |
JP2013539130A5 (ja) | ||
JP2014501412A5 (ja) | ||
JP2015530662A5 (ja) | ||
US9213532B2 (en) | Method for ordering text in a binary | |
US20060277371A1 (en) | System and method to instrument references to shared memory | |
JP2017516228A5 (ja) | ||
JP2013524342A5 (ja) | ||
JP2015505091A5 (ja) | ||
US20120226868A1 (en) | Systems and methods for providing deterministic execution | |
US10083125B2 (en) | Method to efficiently implement synchronization using software managed address translation | |
Sabanal | Hiding behind ART | |
Shende et al. | Characterizing I/O performance using the TAU performance system | |
JP2018508883A (ja) | 汚染されているデータをトラッキングするためのメカニズム | |
US9880849B2 (en) | Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard | |
JP2018152061A5 (ja) | ||
KR101537725B1 (ko) | 워크 그룹 크기 결정 방법, 시스템 및 컴퓨터 판독가능 기록매체 | |
Park et al. | Javascript ahead-of-time compilation for embedded web platform |