# US 9,436,531 B1 · Monitoring application loading

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,531 B1
- Document ID: US9436531B1
- Status: Granted
- Kind: B1
- Application number: 14/978,121
- Filed: 2015-12-22
- Granted: 2016-09-06
- Earliest claimed: 2015-07-23
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Si Chen
- Web page: https://patentgrep.com/patent/US9436531B1

## CPC

- G06F 9/54: Interprogram communication
- G06F 11/3003: {Monitoring arrangements specially adapted to the computing system or computing system component being monitored}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/3495: {for systems}
- G06F 16/3334: {Selection or weighting of terms from queries, including natural language queries}
- G06F 16/95: Retrieval from the web
- G06F 11/3089: {Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents (software debugging using additional hardware using a specific debug interface G06F11/3656; performance evaluation by tracing or monitoring G06F11/3466)}
- G06F 11/3419: {by assessing time}
- G06F 2201/86: Event-based monitoring
- G06F 2201/865: Monitoring of software
- G06F 2201/875: Monitoring of systems including the internet
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, for determining when an application is sufficiently instantiated to be subject to a crawling operation. In an aspect, a method includes instantiating a native application instance that generates environment instances for display on a user device within the native application instance; in response to the instantiation of the native application instance: monitoring for occurrences of activity lifecycle events of the native application instance, monitoring for changes in a memory footprint of the native application instance, and generating, in response to the monitoring of the lifecycle events and monitoring of the changes in the memory footprint indicating the native application instance is sufficiently instantiated to be subject to a crawling operation, a load signal indicating the native application instance is sufficiently instantiated to be subject to the crawling operation.

## Claims

### Claim 1

A computer-implemented method performed by data processing apparatus, the method comprising:
instantiating a native application instance that generates environment instances for display on a user device within the native application instance;
in response to the instantiation of the native application instance:
determining a memory footprint of the native application instance, the memory footprint specifying an amount of the data processing apparatus memory the native application instance is using at a particular time that the memory footprint is determined; and
iteratively monitoring the memory footprint of a native application, the iteratively monitoring comprising, for each iteration:
determining a subsequent memory footprint of the native application instance at a time subsequent to a time that a prior memory footprint was determined;
determining whether the amount of the data processing apparatus memory specified by the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is greater than the amount of the data processing apparatus memory specified by the prior memory footprint; and
in response to determining that the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is not greater than the prior memory footprint, generating a memory footprint load signal that is a constituent indication that the native application instance is sufficiently instantiated to be subject to a crawling operation.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application only after monitoring the occurrence of the first event.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the first event is a lifecycle activity event.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application concurrently with the monitoring for the occurrence of the first event.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the first event is a lifecycle activity event.

### Claim 6 (depends on 1)

The method of claim 1, further comprising, in response to the instantiation of the native application instance:
monitoring requests for content sent from the native application instance to serving entities that are external to the native application instance;
determining whether each monitored request has been fulfilled; and
in response to determining that each monitored request has been fulfilled, generating a request load signal that is a constituent indication, based on the monitoring requests for content, that the native application instance is sufficiently instantiated to be subject to the crawling operation.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein monitoring for changes in the memory footprint of the native application instance begins only after an expiration of a launch timeout.

### Claim 8

A system, comprising:
a data processing apparatus comprising one or more processors; and
in non-transitory computer readable storage medium storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:
instantiating a native application instance that generates environment instances for display on a user device within the native application instance;
in response to the instantiation of the native application instance:
determining a memory footprint of the native application instance, the memory footprint specifying an amount of the data processing apparatus memory the native application instance is using at a particular time that the memory footprint is determined; and
iteratively monitoring the memory footprint of a native application, the iteratively monitoring comprising, for each iteration:
determining a subsequent memory footprint of the native application instance at a time subsequent to a time that a prior memory footprint was determined;
determining whether the amount of the data processing apparatus memory specified by the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is greater than the amount of the data processing apparatus memory specified by the prior memory footprint; and
in response to determining that the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is not greater than the prior memory footprint, generating a memory footprint load signal that is a constituent indication that the native application instance is sufficiently instantiated to be subject to a crawling operation.

### Claim 9 (depends on 8)

The system of claim 8, the operations further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application only after monitoring the occurrence of the first event.

### Claim 10 (depends on 9)

The system of claim 9, wherein the first event is a lifecycle activity event.

### Claim 11 (depends on 8)

The system of claim 8, the operations further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application concurrently with the monitoring for the occurrence of the first event.

### Claim 12 (depends on 11)

The system of claim 11, wherein the first event is a lifecycle activity event.

### Claim 13 (depends on 8)

The system of claim 8, the operations further comprising, in response to the instantiation of the native application instance:
monitoring requests for content sent from the native application instance to serving entities that are external to the native application instance;
determining whether each monitored request has been fulfilled; and
in response to determining that each monitored request has been fulfilled, generating a request load signal that is a constituent indication, based on the monitoring requests for content, that the native application instance is sufficiently instantiated to be subject to the crawling operation.

### Claim 14 (depends on 8)

The system of claim 8, wherein monitoring for changes in the memory footprint of the native application instance begins only after an expiration of a launch timeout.

### Claim 15

A non-transitory computer readable storage medium storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:
instantiating a native application instance that generates environment instances for display on a user device within the native application instance;
in response to the instantiation of the native application instance:
determining a memory footprint of the native application instance, the memory footprint specifying an amount of the data processing apparatus memory the native application instance is using at a particular time that the memory footprint is determined; and
iteratively monitoring the memory footprint of a native application, the iteratively monitoring comprising, for each iteration:
determining a subsequent memory footprint of the native application instance at a time subsequent to a time that a prior memory footprint was determined;
determining whether the amount of the data processing apparatus memory specified by the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is greater than the amount of the data processing apparatus memory specified by the prior memory footprint; and
in response to determining that the subsequent memory footprint of the native application instance determined at the time subsequent to the time that the prior memory footprint was determined is not greater than the prior memory footprint, generating a memory footprint load signal that is a constituent indication that the native application instance is sufficiently instantiated to be subject to a crawling operation.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, the operations further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application only after monitoring the occurrence of the first event.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the first event is a lifecycle activity event.

### Claim 18 (depends on 15)

The non-transitory computer readable storage medium of claim 15, the operations further comprising:
monitoring for an occurrence of a first event of the native application instance in response to the instantiation of the native application instance; and
iteratively monitoring the memory footprint of a native application comprises iteratively monitoring the memory footprint of a native application concurrently with the monitoring for the occurrence of the first event.

### Claim 19 (depends on 15)

The non-transitory computer readable storage medium of claim 15, the operations further comprising, in response to the instantiation of the native application instance:
monitoring requests for content sent from the native application instance to serving entities that are external to the native application instance;
determining whether each monitored request has been fulfilled; and
in response to determining that each monitored request has been fulfilled, generating a request load signal that is a constituent indication, based on the monitoring requests for content, that the native application instance is sufficiently instantiated to be subject to the crawling operation.

### Claim 20 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein monitoring for changes in the memory footprint of the native application instance begins only after an expiration of a launch timeout.
