|
Overview
The eValid
DOM Element Manipulation/Motion Commands
are the primary method that permits manipulation
of playback in a "position independent" manner.
Scripts that involve the use of these commands, particularly the IndexFindElementEx command, often impose a performance penalty on the playback. This page provides some baseline performance data for these commands.
Script Description
The script used for these tests involved these specific commands:
Experimental Results
All Times Approximate, in Seconds | ||||||
Website URL | Element Attribute Count | Page Size | Simple Search Found (Quick Search) | Simple Search NOT Found (Full Length Search) | RE Search Found (Quick Search) | RE Search NOT Found (Full Length Search) |
www.cnn.com | 321K | 862K Bytes | 0.2 | 0.9 | 0.4 | 12.1 |
www.yahoo.com | 119K | 353K Bytes | 0.3 | 0.4 | 0.6 | 18.5 |
www.ask.com | 116K | 210K Bytes | 0.2 | 0.2 | 0.3 | 4.5 |
www.google.com | 17K | 25K Bytes | 0.05 | 0.07 | 0.06 | 0.4 |
Benchmark Machine Characteristics
The benchmarks above have all been done on a Windows XP/SP2 environment,
running on a PC with a Pentium 4 CPU at 2.8 GHz, and 2.0 GB of RAM.
Implementation Note
The IndexFindElement (simple search)
and IndexFindElementEx (Regular Expression [R.E.] search) commands
-- as is true of all of eValid's DOM analysis commands --
are implemeted directly in the eValid browser, which itself is built in C++.
As a consequence of this architecture
the user can choose to run searches on any frame in the page,
on the parent browser window, or on any subwindow --
all with equally high efficiency (low overhead).
Perhaps more importantly, the operation of these commands does NOT interfere with normal operation of browser functions, specifically with the JavaScript engine or any AJAX implementation. These searches run in the own separate execution thread and examine the current DOM contents independently of browser activity.
In some cases, if the DOM is being updated (as happens for example in an AJAX example) the search results may be skewed because the scan parameters are taken from the page at the start of the scan. Similar searches that repeatedly wait for a particular DOM element property to take on a particular value as a way to synchronize playback usually are not affected by page changes.