Version 3.1 Highlights
- Device detection algorithm is over 100 times faster. Regular expressions and levenshtein distance calculations are no longer used.
- The device detection algorithm performance is no longer limited by the number of device combinations contained in the dataset.
- Two modes of operation are available:
- Memory – the detection data set is loaded into memory and there is no continuous connection to the source data file. Slower initialisation time but faster detection performance.
- Stream – relevant parts of the data set are loaded into memory when required and cached to improve performance. Rapid initialisation time but approximately 50% slower detection performance. This mode is used when operated in a web environment.
- Multi-threading is no longer used within the matching algorithm.
- When used in a web environment the detection results are stored within the session when available and are no longer cached separately.
- JPG and PNG format images can be optimised to improve performance.
- Bandwidth and response times can be monitored to understand in real time the end users experience.
- Feature detection is used to override properties in the data set to provide details such as iPhone model or the screen orientation. These values become available to the server from the 2nd request from the device onwards.
- Versions of .NET prior to 3.5 are no longer supported.
Changes from 18.104.22.168
data files must be updated to version 3.1 to work with this version of the API.
- Added methods to return the device Id as a binary byte array for more efficient storage than the string version. A method to use the device Id as the key has been added to speed up retrieving device properties.
- Renamed a number of properties for consistency of naming.
- Added a generic cache class used for caching Id and User Agent requests.
- Added a new property to the initialiser which enables memory mode for faster performance.
- Added check to ToBool and ToDouble methods to ensure there is a default value if there is no value for the device.
- .NET 3.5 was not overriding default properties correctly. This is now addressed.
- Image width and height attributes now default to ‘w’ and ‘h’, instead of ‘width’ and ‘height’. Sample project updated to use these values.
- Closest and Nearest routines now use pre-sorted lists added to the data files. This leads to a performance improvement where a large number of signatures are returned and also reduces memory consumption.
- Simplified some of the methods used to override default browser properties.
- The Provider can now be initialised with a cache interval in seconds which will be used to store results for a period of time improving performance in some situations. The WebProvider defaults this value to the same as the CacheServiceInterval provided in the constants file.
- Ensured all calls that can use context and session cached data are using this source to avoid duplicate detections for the same web visit.