JP2015507310A5 - - Google Patents

Download PDF

Info

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
Application number
JP2014557678A
Other languages
English (en)
Other versions
JP6195849B2 (ja
JP2015507310A (ja
Filing date
Publication date
Priority claimed from US13/371,479 external-priority patent/US9110751B2/en
Application filed filed Critical
Publication of JP2015507310A publication Critical patent/JP2015507310A/ja
Publication of JP2015507310A5 publication Critical patent/JP2015507310A5/ja
Application granted granted Critical
Publication of JP6195849B2 publication Critical patent/JP6195849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (13)

  1. 少なくとも部分的にコンピューターによりインプリメントされる方法であって、
    ソース・コードを含むソフトウェアを実行するリクエストを受け取るステップであって、前記ソース・コードは、スクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ステップと、
    前記リクエストに応答して、第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップであって、前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されているかどうかを判定するステップは、前記不揮発性ストレージの既知の場所において前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所へはネットワークを介して到達可能である、ステップと、
    前記リクエストを受け取る前に前記第2のコードが既に生成されていた場合に、
    前記第2のコードを得るステップと
    前記第2のコード又はそこから導き出されたコードを実行するステップを含む、第1組のアクションを実行するステップと、
    前記リクエストを受け取る前に前記第2のコードがまだ生成されていない場合に、
    前記ソース・コードを得るステップと、
    前記ソース・コードから第2のコードを生成するステップと、
    前記第2のコード又はそこから導き出されたコードを実行するステップと
    を含む、第2組のアクションを実行するステップと、
    前記リクエストを受け取る前に前記第2のコードがまだ生成されていない場合に、
    前記第2のコードを、前記ソフトウェアを後に実行する際に使用するために、前記不揮発性ストレージに格納するステップと、
    前記第2のコードを含むファイルをメモリ・マッピングし、該メモリ・マッピングを介して複数のプロセスで前記ファイルを共有するステップと、
    を含む第3組のアクションを実行するステップと
    を含む、方法。
  2. 前記第3組のアクションを実行するステップは、
    前記ソース・コードを再び得るステップと、
    前記ソース・コードから前記第2のコードを再び生成するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップは、
    前記不揮発性ストレージの既知の場所で前記第2のコードを検査するステップをさらに含み、前記既知の場所は前記ソース・コードを含むパッケージの名前に対応し、前記パッケージは前記不揮発性ストレージをホストするターゲット・システムにインストールされている、請求項1に記載の方法。
  4. 前記第2のコードが既に前記ソース・コードから生成され、不揮発性ストレージに格納されたかを判定するステップは、
    前記不揮発性ストレージからデータを得るステップをさらに含み、前記データは前記パッケージに対するバイトコードを前記パッケージに対するソース・コードと並べて配するファイルの一部であり、前記データは前記第2のコードが既に生成されてファイルに格納されているかどうかを示す、請求項1に記載の方法。
  5. 前記第2のコードが、生成された後に変更されたかを検査するステップをさらに含み、そうである場合に、
    前記ソース・コードを再び得るステップと、
    前記ソース・コードから前記第2のコードを再び生成するステップと、
    前記第2のコードを、前記ソフトウェアを後に実行する際に使用するために、前記不揮発性ストレージに格納するステップと、
    を含む請求項1に記載の方法。
  6. 計算環境におけるシステムであって、
    メモリに結合された処理ユニットを備えるコンピューターを備え、前記メモリは、
    ソフトウェアのソース・コードを含むパッケージのデータを格納するように動作するストアであって、前記パッケージはソフトウェアのソース・コードを含み、前記ソース・コードはスクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ストアと、
    前記ストアに前記パッケージをインストールするように動作するインストーラーであって、前記ソース・コードが第2のコードへとコンパイルされることを示すようにデータ構造をアップデートするように更に動作するインストーラーと、
    前記ソース・コードが前記第2のコードへとコンパイルされることを、前記データ・構造において示すこと基づいて、前記ソース・コードを識別するために前記データ構造を検査するように、および前記ソース・コードを前記第2のコードへとコンパイルするように動作するコード・ジェネレーターと、
    前記第2のコードを前記ストアへ永続的に格納するように、および前記ストアの前記第2のコードへのアクセスを提供するように動作するキャッシュ・マネージャーと、
    前記ソフトウェアを実行するリクエストを受け取るように動作し、且つ前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしているかどうかを判定するように動作する実行マネージャーであって、前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしていると判定することは、不揮発性ストレージの既知の場所で前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所はネット-枠を介して到達可能であり、
    コンパイルしていた場合、
    前記第2のコードを得ることと、
    前記第2のコード又はそれから導き出されたコードを実行することと
    を含むアクションを行い、
    コンパイルしていない場合、
    前記ソース・コードを得ることと、
    前記ソース・コードが前記第2のコードへとコンパイルされるようにすることと、
    前記ソース・コード又はそれから導き出されたコードを実行することと
    を含むアクションを行う
    実行マネージャーと
    を含むシステム。
  7. 前記実行マネージャーは、さらに前記リクエストが受け取られる前に前記コード・ジェネレーターがまだ前記ソース・コードを前記第2のコードへコンパイルしていない場合に、遅滞なく前記第2のコートを生成させるように操作可能である、請求項6に記載のシステム。
  8. 前記コード・ジェネレーターは、前記システムが他のパッケージをインストールしていないとき又は前記システムの処理帯域を消費する他のタスクを実行していないときに行うプロセスとして実行される、請求項6に記載のシステム。
  9. 前記コード・ジェネレーターは、1日のうちの構成可能な時間に行うプロセスとして実行される、請求項6に記載のシステム。
  10. デバイスであって、
    処理ユニットと、
    ソフトウェアのソース・コードを含むパッケージのデータを格納するよう構成されたストアであって、前記ソース・コードは、スクリプトファイルへの明確な参照に遭遇していないウェブサイトのページに対するスクリプトファイルである、ストアと、
    前記パッケージを前記ストアにインストールするよう構成されたインストーラーであって、該インストーラーは、前記ソース・コードが第2のコードへとコンパイルされることを示すようにデータ構造をアップデートするよう操作可能である、インストーラーと、
    前記ソース・コードが第2のコードへとコンパイルされることを前記データ構造において示すことに基づいて、前記ソース・コードを識別するために前記データ構造をけんさするように、及び前記ソースコートを前記第2のコードへとコンパイルするように構成されたコード・ジェネレーターと、
    前記第2のコードを前記ストアへ永続的に格納するように、および前記ストアの前記第2のコードへのアクセスを提供するように構成されたキャッシュ・マネージャーと、
    前記ソフトウェアを実行するリクエストを受け取るように構成され、且つ前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしたかどうかを判定するように構成された実行マネージャーであって、前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへと既にコンパイルしたかを判定することは、不揮発性ストレージの既知の場所で前記第2のコードを検査することを含み、前記既知の場所は前記ソース・コードのソースの場所を識別する参照から導き出され、前記ソースの場所はネットワークを介して到達可能であり、
    コンパイルしていた場合、
    前記第2のコードを得ることと、
    前記第2のコード又はそれから導き出されたコードを実行することと
    を含むアクションを行い、
    コンパイルしていない場合、
    前記ソース・コードを得ることと、
    前記ソース・コードが前記第2のコードへとコンパイルされるようにすることと、
    前記ソース・コード又はそれから導き出されたコードを実行することと
    を含むアクションを行う
    実行マネージャーと
    を含むデバイス。
  11. 前記リクエストを受け取る前に前記コード・ジェネレーターが前記ソース・コードを前記第2のコードへとまだコンパイルしていない場合に、前記実行マネージャーは、さらに遅延なく前記第2のコートを生成させるようにさらに構成される、請求項10に記載のデバイス。
  12. 前記システムが他のパッケージをインストールしていないとき又は前記システムの処理帯域を消費する他のタスクを実行していないときに行うプロセスとして、前記コード・マネージャーが実行される、請求項10に記載のデバイス。
  13. 前記コード・ジェネレーターは、1日のうちの構成可能な時間に行うプロセスとして実行される、請求項10に記載のデバイス。
JP2014557678A 2012-02-13 2013-02-04 ソフトウェア・コードの生成およびキャッシング Active JP6195849B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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