CN111937006B - 基于熵值来确定性能的系统 - Google Patents
基于熵值来确定性能的系统 Download PDFInfo
- Publication number
- CN111937006B CN111937006B CN201980024972.5A CN201980024972A CN111937006B CN 111937006 B CN111937006 B CN 111937006B CN 201980024972 A CN201980024972 A CN 201980024972A CN 111937006 B CN111937006 B CN 111937006B
- Authority
- CN
- China
- Prior art keywords
- data
- entropy
- value
- image
- determining
- 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.)
- Active
Links
- 238000009826 distribution Methods 0.000 claims abstract description 25
- 238000004891 communication Methods 0.000 claims description 63
- 238000000034 method Methods 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 47
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000005457 optimization Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 abstract description 66
- 238000007726 management method Methods 0.000 description 64
- 238000004458 analytical method Methods 0.000 description 63
- 238000003860 storage Methods 0.000 description 30
- 230000008859 change Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000013480 data collection Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 235000012813 breadcrumbs Nutrition 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 206010010947 Coordination abnormal Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
Abstract
一种测试装置可包括性能模块,所述性能模块确定将要在所述测试装置的显示装置上呈现(诸如图形用户界面)的图像的熵值。图像的熵值可指示所述图像中的像素的诸如强度值或色彩值的数据值的分布。熵值随时间的模式可提供指示所述测试装置的性能的信息。举例来说,随时间的恒定熵值可指示所述图形用户界面不变。在另一示例中,条目值随时间的特定模式可指示等待指示符或其他用户界面元件的呈现。所述熵值可用于确定指示所述测试装置的性能的数据。此数据可存储在本地、被发送到外部装置等。
Description
优先权
本专利申请要求在2019年3月8日提交的标题为“System To DeterminePerformance Based On Entropy Values”的申请序列号为16/297,380的美国专利申请的优先权。本专利申请要求在2018年3月12日提交的标题为“Multiple Device Test Device”的申请序列号为62/641,920的美国临时专利申请的优先权。申请16/297,380和申请62/641,920以引用的方式整体并入本文。
以引用的方式并入
在2015年9月10日提交且标题为“System for Application Test”的美国专利申请序列号14/850,798(代理人案号889-7001)在此以全文引用的方式并入。
在2015年12月21日提交且标题为“System for Network CharacteristicAssessment”的美国专利申请序列号14/976,480(代理人案号889-7002)在此以全文引用的方式并入。
在2017年2月22日提交、标题为“Adaptive Application Behavior Based OnAssessed Network Characteristics”的美国专利申请序列号15/439,755(代理人案号889-7003)在此以全文引用的方式并入。
背景技术
在操作期间利用数据网络的移动装置执行的应用可能会由于网络状况而经历失败或以其他方式产生不利的用户体验。可执行对这些应用的测试以防止或缓解失败的影响。
附图说明
参考附图陈述详细描述。在图中,参考数字的最左边数字识别了所述参考数字第一次出现的图。在不同的图中使用相同的参考数字会指示类似或相同的项或特征。
图1描绘根据一个实现方式的用于测试利用网络资源的应用的系统的图。
图2描绘根据一个实现方式的测试装置的图并且包括针对每个测试装置的随时间的熵的曲线图。
图3描绘根据一个实现方式的包括多种计算装置以提供熵数据的用于测试应用的系统的框图。
图4描绘根据一个实现方式的充当分析系统的计算装置的框图。
图5描绘根据一个实现方式的充当测试装置、工作站或所部署的装置的计算装置的框图。
图6描绘根据一个实现方式的充当管理服务器的计算装置的框图。
图7描绘根据一个实现方式的充当代理主机装置的计算装置的框图。
图8描绘根据一个实现方式的在本公开的范围内的熵和网络吞吐量相对于时间的曲线图。
图9描绘根据一个实现方式的在本公开的范围内的基于熵值来确定指示测试装置的操作的数据的方法的流程图。
图10描绘根据一个实现方式的在本公开的范围内的基于熵值来确定指示测试装置的操作的数据的方法的流程图。
图11描绘根据一个实现方式的在本公开的范围内的确定指示熵值的重复模式的数据的方法的流程图。
虽然在本公开中举例描述了实现方式,但本领域技术人员将认识到,所述实现方式不限于所描述的示例或图。应理解,图和对图的详细描述无意将实现方式限制于所公开的特定形式,而是相反,希望涵盖落在由所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。在本公开中使用的标题仅出于组织目的,并且不打算用于限制描述或权利要求的范围。如在整个本申请中所使用,词语“可”是在许可意义(即,意味着具有可能性)而不是强制意义(即,意味着必须)上使用。类似地,词语“包括(include)”、“包括(including)”和“包括(includes)”是指“包括(但不限于)”。
具体实施方式
移动装置可执行应用以提供各种功能。移动装置可包括(但不限于)智能电话、膝上型计算机、平板计算机、嵌入式装置、可穿戴计算装置、器具、汽车、飞行器等。由所述应用提供的功能可涉及检索数据、向用户呈现那个数据、处理数据、其他操作或它们的任何组合。在一些实施方案中,所述应用可为独立应用。
一些应用可使用网络与诸如服务器的目的地装置通信。举例来说,绘图应用可将指示移动装置的位置的信息发送到绘图服务器,并且所述绘图应用可响应于发送所述信息而接收地图数据以在移动装置的显示器上呈现。此通信的问题可导致所述应用无法执行期望的功能、错误消息、静态或单调显示数据、不恰当的操作、其他问题或它们的任何组合。继续以上示例,在接收地图数据的过程中的长等待时间或延迟可致使移动装置上的应用向用户呈现错误,或者可能会导致显示器上的数据可能更新不了的长等待时间或加载延迟。这些问题可导致不利的用户体验。举例来说,用户可能会由于这些问题而中止使用所述应用,并且替代地使用另一应用。
在下文描述系统、方法和装置的实施方案,系统、方法和装置的所述实施方案可基于从将要由移动装置呈现的信息确定的熵来确定移动装置的或在移动装置上执行的应用的一个或多个性能参数。所述性能参数可基于某一其他系统的性能,诸如网络服务器响应的延迟、网络吞吐量、其他因素或它们的任何组合。此类信息可包括(例如)将要在显示器上呈现的一个或多个图像、将要向音频输出端(诸如扬声器)呈现的音频数据、其他信息或它们的任何组合。举例来说,熵值可包括可用于表征数据阵列的随机性统计量度。在图像处理中,术语“熵”可以指可用于表征图像的纹理(色彩或强度的空间布置)的随机性统计量度。在特定示例中,可从与图像相对应的值的数字阵列、与声音相对应的值的数字阵列、其他数据或它们的任何组合来确定熵。可对图像数据、音频数据、其他数据或它们的任何组合执行熵分析。术语“熵”还可具有总体涉及诸如图像的特定数据项的内容的随机性的其他定义。
熵分析
可按照位或“香农”测量信息熵,并且所述信息熵可为用于测量通常由伯努利过程建模的数据源的信息内容的有用度量。伯努利过程是一连串二进制随机变量,所述二进制随机变量中的每一者可仅取互相排斥且穷尽的两个值,通常为0或1。举例来说,可将一连串掷硬币视为伯努利过程。通过H(X)=HB(p)=-p log2 p-(1-p)log2(1-p)给出其中Pr(X=1)=p和Pr(X=0)=1-p的一连串伯努利试验的二进制或“香农”熵函数,其中0log20取为0并且X是随机变量。
可将图像视为随机数据源。作为伯努利过程的替代,图像由像素阵列组成,其中每个像素具有在图像数据类型范围内的以某一概率P(xi)出现的值,其中xi表示给定像素值(例如,灰度)。可将熵一般写为其中b是对数函数的基底,并且可表示给定像素的可能的值的数目,并且n表示像素的总数。通常将图像表示为具有Nx M x D个元素的8位阵列。8位阵列中的每个元素可具有在256位范围[0,255]内的值。对于灰度图像,D=1,并且因此每个像素可具有256个可能的值。因此,可通过创建具有针对[0,255]中的值的256个段的直方图并且除以像素的总数n来计算单位为8位或一个字节的b=256以及P(xi)。应理解,熵是尺度独立的值并且不需要像公式表示一样的附加的归一化。在上述实现方式中,将熵计算为非零概率的值的总和,因为P(xi)=0将得到不确定的0*log(0)。
对于RGB图像,每个像素具有三个元素的深度,单个像素可具有256*256*256=16777216个可能值。因为将像素归入在此类大范围内可为计算上昂贵的,所以实际的替代方案可包括将图像变换为灰度,或者简单地跨所有通道取图像熵的平均值。
可将图像熵解译为范围是最小理论熵到最大熵的像素值的分布,在最小理论熵中,所有像素具有相等强度(例如,所有像素值都相同,从而在显示器上产生单色图像),在最大熵中,所有像素强度是等可能的(例如,具有大量图像内容以使得像素值随机改变的图像)。从信息理论角度来看,其中所有像素都相同的最小熵的点是最低多样化、最低信息内容和最大阶(或最小随机性)的点。
在数学上,熵的最小值是零,并且最大值是一。最小熵值暗示分布中的所有值都相等。对于图像,这意味着所有像素具有相同值。最大熵值暗示分布中的值一致地分布。具有此性质的图像具有丰富的像素值分布和高信息内容。此尺度独立的度量允许在[0,1]的范围上具有不同大小的图像的方便且可解译的比较。
通过计算视频中的每个图像的此图像熵值而产生的时间序列是特别有用的。不是使用计算资源扫描通过视频的图像,而是熵值的时间序列或曲线图实现视频馈送中的演变的信息内容的快速视觉概要。在熵曲线图内,任何色彩的单调图像或具有相对一致的显示内容的图像具有低熵值,而具有大量对比度和色彩变化的图像具有相对高的熵值。
在一些实施方案中,从图像的内容得到的图像熵值在按照时间序列观看时可提供有用的信息。具体地,由熵值或其他散列值表示的随机性或熵可提供可用于评估应用的或计算装置的性能的信息。
读取熵时间序列
举例来说,在来自被测移动电话的视频中,可能存在不同阶段,其中用户通过打开新的页而请求内容,应用加载新的内容,可能示出旋转器或加载指示符以提供视觉反馈,并且随后内容最终加载。因为应用通常未准备好用户所请求的信息,所以可能存在延迟,在所述延迟中屏幕是单调的或几乎是单调的。在一些情况下,在所述延迟期间,在请求内容时在屏幕上的图像可在屏幕上保持冻结,并且旋转器或加载指示符可能会叠加在冻结或静态图像上,直到所请求的内容最终加载为止。
可在视频熵时间序列中检测到在页上呈现的东西的这些转变。可将从第一页到请求页的转变捕获为逐步减量或在熵开始改变之前的短暂时期内的平稳时期。当加载内容时,熵可保持低或可保持基本上静态。在一些情况下,所述熵可响应于周期性地旋转或演变的加载指示符(诸如旋转器、计时沙漏、柱状图等)而周期性地波动。在内容开始加载时,熵可递增地并且与屏幕上的信息量成比例地增加。
在一些情况下,内容占位符诸如加载指示符可比满载的内容对熵值的影响更小。通过确定并评估熵值,可快速地且有效地搜集关于移动电话测试的操作的有用数据。
虽然示例描述了移动电话测试,但这些技术可用于任何移动装置或固定装置。举例来说,熵可用于评估平板计算机、台式计算机、嵌入式装置等的操作。这些技术可用于评估被测应用、装置的常规操作、操作系统等。
在一些实施方案中,在诸如智能电话的移动计算装置上执行的应用可能会经历间歇的性能问题,这对于装置的用户来说可能是明显的,因为装置在(例如)可能大于时间阈值的一段时期内未能加载信息。有时,移动计算装置可能会在当应用不具有要显示或以其他方式呈现的信息时的时间间隔期间显示具有加载指示符(诸如旋转器、计时沙漏或另一视觉指示符)的单调屏幕。软件开发者可能会想要收集关于在各种计算装置上执行的应用在不同时间以及在不同的地球物理位置的性能的信息。
在下文描述系统、方法和装置的实施方案,所述系统、方法和装置的实施方案可包括可在移动计算装置上执行的应用并且可基于将要由移动计算装置呈现的信息来确定熵值。此类信息可包括图像、声音或其他信息。移动计算装置可被配置为基于熵值来确定指示(用户所看到的)应用或移动计算装置的性能或操作的数据。举例来说,熵值可显露等待时间间隔,所述等待时间间隔可与当熵值指示低信息内容或静态信息内容时(当信息内容应改变时)的时期相对应。在另一示例中,指示性能的数据可基于某一其他系统的性能,诸如网络服务器响应的延迟、网络吞吐量、其他因素或它们的任何组合。在一些情况下,使熵值与网络吞吐量值相关可显露应用内的函数,所述函数诸如当网络吞吐量值为高但熵值显露等待时间间隔时可需要编辑。在其他情况下,使熵值与例如从输入接口接收输入数据相关可显露用户交互以及用户交互对应用的影响。熵数据还可用于基于等待时间间隔的存在或不存在等来检查应用的整体性能。
在一些实施方案中,熵值可用于基于将要向用户呈现的数据来确定指示计算装置和应用的操作的数据。换句话说,熵值可显露可能难以客观地评估的用户体验。通过检查熵值,无信息内容或低信息内容的间隔可得以识别、与网络吞吐量数据相关、与所接收的输入相关并且经过分析。分析可显露程序错误、编码或函数问题以及其他信息,这可用于提高移动计算装置的机能。
在一些实现方式中,可使熵值与测试数据相关,这可允许使熵与包括中央处理单元、存储器装置、通信接口等的装置度量相关。测试数据可用于驱动操作,并且熵可提供对装置的性能的洞察,如用户所见。其他实现方式也是可能的。
在一些实施方案中,熵值提供对应用性能的非侵入性测量,这可用于提高应用和移动计算装置的机能。在下文关于图1描述包括用以基于熵值来确定性能的测试装置的系统的一个可能的示例。
说明性系统
图1描绘根据一个实现方式的用于测试利用网络资源的应用的系统100的图。系统100可包括测试装置(TD)102,所述测试装置可为移动装置。TD 102可包括(但不限于)智能电话、膝上型计算机、平板计算机、嵌入式装置、可穿戴计算装置、器具、汽车、飞行器等。TD102可包括显示器104,所述显示器可呈现可随时间改变的视觉内容。TD 102的显示器104可在各个时间呈现加载指示符106。TD 102可通过网络110与诸如分析系统108的一个或多个计算装置通信。
网络110可包括蜂窝网络、卫星网络、互联网、局域网、其他网络或它们的任何组合。TD 102和分析系统108用于与网络110通信的连接可包括(但不限于)有线以太网连接、无线局域网(WLAN)连接(诸如Wi-Fi)、通过基站的移动电话连接、另一种类型的连接或它们的任何组合。
TD 102可为包括被测应用(AUT)112的移动计算装置。AUT 112可为处于在开发或维护生命周期中的任何阶段的应用。举例来说,AUT 112可包括软件的阿尔法(或预发行)版本,或可包括正在经历进一步的测试的先前发行的生产版本。
TD 102还可包括性能模块114,所述性能模块可为应用、插件、软件开发工具包(SDK)、窗口小部件或另一种类型的软件部件。TD 102还可包括存储器来存储图像数据116和日志数据118,所述日志数据可包括熵数据120和网络数据122。所述存储器可包括(但不限于)高速缓存存储器、显示缓冲器、非易失性存储器、其他存储器部件或它们的任何组合。图像数据116可包括存储在(例如)显示缓冲器中的视频帧。熵数据120可包括由性能模块114或AUT 112确定的数据。可通过TD 102的电路(诸如网络收发器)确定网络数据122。
性能模块114可监测一个或多个参数,诸如将要由TD 102呈现的图像信息。性能模块114可从图像数据116选择图像序列中的第一图像和第二图像。性能模块114可确定指示第一图像内的数据值的分布的第一熵值和指示第二图像内的数据值的分布的第二熵值。性能模块114随后可基于所述第一熵值和所述第二熵值来产生指示TD 102的性能的数据。在示例中,指示性能的数据可基于某一其他系统的性能,诸如网络服务器响应的延迟、网络吞吐量、其他因素或它们的任何组合。性能模块114可访问日志数据118以将所述数据存储为熵数据120。在一些实施方案中,TD 102可通过网络110向分析系统108发送熵数据120、网络数据122、指示操作的数据或它们的任何组合。
在一些实现方式中,性能模块114可确定图像序列的第一数据项(例如,图像)的数据值的子集。性能模块114可进一步基于所述数据值子集来确定所述第一数据项的第一熵值。举例来说,性能模块114可从图像确定数据值的子集并且可确定所述子集的概率。所述概率可表示所述数据值子集具有特定值的可能性。可通过对所述概率求和来确定所述第一熵值。其他实现方式也是可能的。
分析系统108可包括存储器来存储日志数据124,所述日志数据包括从一个或多个TD 102接收的熵数据126和网络数据128。分析系统108还可包括分析模块130。分析模块130可基于熵数据126、网络数据128、其他数据或它们的任何组合来产生报告数据134。
在一些实现方式中,图像可包括多个数据值。分析模块130可确定第一图像的第一数据值的第一概率值,并且可确定第一图像的第二数据值的第二概率值。举例来说,所述第一概率值可表示第一数据值具有特定色彩、强度或其他特性的可能性。所述第二概率值可表示第二数据值具有特定色彩、强度或其他特性的可能性。在一些实现方式中,所述第一概率值独立于所述第二概率值。可将第一概率值和第二概率值一起相加以确定第一图像的熵值。可针对图像序列中的一个或多个图像重复所述过程。其他实现方式也是可能的。
熵数据126可包括与随时间的图像序列(例如,视频帧)内的值的分布相对应的时间序列数据。在此示例中,可使用熵值138相对于时间140的熵曲线图136将与特定装置(诸如TD 102)相关联的熵数据126可视化。应了解,提供给TD 102的显示器104的数据可随时间140改变,使得在第一时间T1呈现在显示器104上的信息可不同于在第二时间T2呈现在显示器104上的信息。熵曲线图136反映此类变化。
熵曲线图136描绘随时间递减的熵。在时间T0处,TD 102的显示器104描绘一种建筑物,通过熵曲线图136上的在零与1之间的熵值来表示。在时间T1处,显示器104已经转变为单色背景,其中加载指示符106叠加在单色(低熵)背景上。加载指示符106可指示AUT 112的操作、指示网络吞吐量、指示某一其他参数或它们的任何组合。在从时间T1延伸到时间T2的等待时间间隔144期间,可在146处在显示器104上呈现加载指示符106。显示器104上的背景的熵在等待时间间隔144期间保持静态或基本上恒定。然而,加载指示符106可自旋或以其他方式改变,从而致使熵值138在等待时间间隔144期间波动。在此示例中,加载指示符106可为可周期性地自旋的旋转器或计时沙漏,从而致使熵值138波动。虽然在等待时间间隔144内的熵曲线图136的所说明的示例示出了波动是正弦曲线,但有可能的是,所述波动可为非周期性的或所述波动可在等待时间间隔144期间通过不规则的变化(在振幅方面、在频率方面,或以上两者)表示。在时间T2处,加载指示符106可消失(大体上在148处指示),并且熵值138可开始从在熵间隔144内的平均熵值改变。
在一个可能的示例中,导致网络吞吐量减小的网络连接性问题可导致等待时间间隔144。举例来说,可能在干扰信号接收的电梯中操作TD 102。在另一示例中,可能在穿过隧道的车辆中操作TD 102。在另一可能的示例中,AUT 112可导致等待时间间隔144。在示例中,AUT 112可能遭遇错误。可替代地,AUT 112可具有缺陷或其他问题,所述缺陷或其他问题可能会影响性能并且可能显现为向显示器104呈现数据的过程中的延迟。在示例中,性能参数可基于某一其他系统的性能,诸如网络服务器响应的延迟、网络吞吐量、其他因素或它们的任何组合。在一些情况下,呈现数据的过程中的延迟可指示较差的性能,这可导致不利的用户体验。此类延迟可以是能够基于来自TD 102的熵数据120的时间序列进行检测的。
分析系统108可利用分析模块130基于熵数据126和网络数据128来确定指示TD102中的一者或多者的性能的数据。此外,分析模块130可基于指示性能的数据来产生报告数据134。在示例中,报告数据134可包括报告150,所述报告包括指示TD 102的熵数据120的数据。在一些情况下,报告数据134还可包括指示多个TD 102的操作的数据。
虽然在图1中描绘的实施方案仅示出了TD 102,但应理解,分析系统108可从多个TD 102接收熵数据120和网络数据122,并且可将所接收的数据作为熵数据126和网络数据128存储在日志数据124中。此外,应了解,TD 102可分布在多个不同的地球物理位置,并且每个TD 102的熵数据120和网络数据122可独立于由其他TD 102收集并通过网络110发送到分析系统108的此类数据。
图2描绘根据一个实现方式的TD 102(1)和102(2)的图200,并且包括每个TD 102的熵值138相对于时间140的熵曲线图136(1)和136(2)。第一时间T0处的TD 102(1)可向显示器104(1)提供图像数据(例如,人类的图片)。在时间T1处,TD 102(1)的显示器104(1)可呈现具有加载指示符106(1)的单调(或单色)背景。参看熵曲线图136(1),在时间T0与时间T1之间,在时间T1之前(大体上在142(1)处指示)的熵值138(1)随时间140(1)从第一时间T0处的相对高的熵值138快速地减小到第二时间T1处的相对低的熵值138,其中第二时间T1处的相对低的熵值138可指示低信息。在时间T1处,显示器104(1)可呈现加载指示符106(1),如大体上在146(1)处指示。在从时间T1延伸到时间T2的等待时间间隔144(1)期间,熵值138(1)保持在低水平,基于与加载指示符106(1)相关联的移动或变化而波动。在时间T2处,加载指示符消失148(1),并且信息内容开始改变,如通过改变的熵值138所反映。
关于TD 102(2),显示器104(2)在时间T3之前的第一时间处描绘岛的图像,大体上在142(2)处指示。在时间T3处,TD 102(2)可向显示器104(2)提供加载指示符106(2)(如大体上在146(2)处指示)。在此情况下,岛的图像留在显示器104(2)上,并且加载指示符106(2)叠加在图像上。参看熵曲线图136(2),熵值138(2)响应于引入加载指示符106(2)而略微增加,并且在等待时间间隔144(2)内不改变(除了由于加载指示符106(2)进行旋转或其他移动而引起的波动之外)。在时间T4处,加载指示符106(2)消失,如大体上在148(2)处指示。
应了解,TD 102(1)可定位在第一地球物理位置,并且TD 102(2)可定位在第二地球物理位置。此外,TD 102(1)与TD 102(2)相比可执行不同的AUT 112。在所说明的示例中,TD 102(1)和102(2)都经历等待时间间隔144。熵曲线图136(2)中的熵值138(2)的振幅在相应的等待时间间隔144期间大于熵曲线图136(1)中的熵值138(1)。然而,熵值138可表示指示特定加载指示符106的模式或签名。可根据时间序列中的重复的熵值138或基于历史分析来确定模式或签名。可通过重复的熵值138、熵值138中的重复的差值或熵值138的时间序列的其他反复出现的形状、斜坡、变化或其他可辨别的内容来表示重复的模式或签名。在其他示例中,等待时间间隔144内的不同熵值138可具有不同的波形。在一些实施方案中,有可能基于熵值138的子集内的熵值138来确定加载指示符106。
在一些实现方式中,可根据振幅从第一时间到第二时间减小的熵值的序列以及根据振幅从第三时间到第四时间增加的熵值的第二序列来确定模式。其他实现方式也是可能的。
此外,在一些实施方案中,熵值138的模式可重复。此类模式可指示由TD 102执行的特定操作。举例来说,在涉及从网站下载和播放音乐视频的操作期间,在应用从第一视频转变为第二视频时(且任选地在应用显示广告时),熵值138可重复模式。在每次转变开始时,熵值138可在背景改变为单色背景或接近单色背景时减小,并且随后熵值138可在选定视频被加载且开始播放时快速地增加。此重复模式可指示特定应用的正常操作。
在另一示例中,用户交互可触发或发起熵模式。举例来说,“向右挥扫”交互可致使熵值138快速地减小,例如因为所呈现的图像显得滑出显示器104,从而使显示器104单调。在此快速减小之后,熵值138可在加载新的图像时快速地增加。可响应于与TD 102的交互而重复此模式。其他示例也是可能的。
在某些实施方案中,可基于熵值138来确定指示TD 102(1)和TD 102(2)的操作的数据。此外,时间序列内的熵值138的重复模式可指示执行诸如“自动播放”或其他操作的常规操作的特定应用的操作,或者可指示应用中的可导致不利的用户体验的缺陷或错误。虽然在图2中描绘的数据的重复模式出现在等待时间间隔144内,但熵值138的子集有可能在时间序列内的各种位置处重复。其他实施方案也是可能的。
在一些实施方案中,可能需要远程地控制TD 102的操作。在示例中,TD 102或另一测试装置可被栓系到计算装置,或可包括实现对所述装置的远程访问或远程控制的计算代码。在下文关于图3描述可启用多个不同的测试情景以便基于熵数据120来确定装置的操作的系统的一个可能的示例。
说明性测试系统
图3描绘根据一个实现方式的包括多种计算装置以提供熵数据120的用于测试应用的系统300的框图。开发者302可为个人、个人团体,或被委派以下任务的实体:创建新的应用;维持现有的应用;重构现有的应用;对应用执行测试;测试媒体内容系统;执行其他操作;或它们的任何组合。开发者302可在被测应用(AUT)112上工作。可在诸如测试装置(TD)102(1)、工作站308、其他装置或它们的任何组合的计算装置上执行AUT 112。工作站308可包括膝上型计算机、台式计算机、平板计算机、另一计算装置或它们的任何组合。
工作站308可包括集成开发环境(IDE)以促进创建和编辑程序代码、调试、编译、执行其他操作或它们的任何组合。在一些实现方式中,工作站308可包括仿真器或模拟器,所述仿真器或模拟器被设计成在不同的操作系统等下执行AUT 112,如同在另一块硬件上执行所述AUT一样。
开发者302可测试AUT 112以(例如)基于根据在TD 102(1)上执行的AUT 112所确定的熵值138来确定与使用AUT 112相关联的问题。一旦已经确定了那些问题,便可缓解所述问题。举例来说,开发者302可改变AUT 112的程序代码以解决所述问题。开发者202可使用在下文描述的技术来确定与AUT 112的操作相关联的至少一些问题。
开发者302、TD 102(1)或工作站308中的一者或多者可定位在第一地理位置310(1)。地理位置310包括诸如特定房间、建筑物、城市、州、国家等的地理位置。举例来说,可通过与地球表面上的纬度和经度相关的坐标集来指定地理位置310。
TD 102(1)或工作站308中的一者或多者可通信地耦合到第一网络312(1)。第一网络312(1)继而可连接至更大的网络或成为更大的网络的部分。举例来说,第一网络312(1)可包括互联网。第一网络312(1)可为图1中的网络110的实施方案。
由TD 102(1)或工作站308使用的连接可包括(但不限于)有线以太网连接、诸如Wi-Fi的无线局域网(WLAN)连接等。举例来说,第一地理位置310(1)可包括开发者302工作所处的办公室。TD 102(1)可连接至本地Wi-Fi接入点,所述本地Wi-Fi接入点经由以太网缆线连接到路由器。所述路由器继而连接至缆线调制解调器,所述缆线调制解调器提供对网络312(1)的连接性。
在操作期间,AUT 112可依赖于对诸如目的地装置、另一计算装置、数据源或它们的任何组合的外部资源的访问。举例来说,AUT 112可包括社交网络应用,所述社交网络应用发送由用户产生的数据并且从服务器检索供呈现的信息。因此,在一些实现方式中,AUT112可需要访问目的地装置进行正常操作。在所说明的示例中,出于清楚起见而省略了目的地装置或数据源。然而,应理解,AUT 112可通过网络312(1)与许多不同的计算装置和数据源(目的地装置)通信。
AUT 112可在操作期间产生可与目的地装置交换的AUT流量314。传统上,TD 102(1)在第一地理位置310(1)产生的AUT流量314将被发送到第一网络312(1)并且继续发送到目的地装置。然而,在一些实现方式中,开发者302可想要施加对TD 102(1)的更大的控制,以便进一步产生与第一地理位置310(1)相关的测试数据。
为了提供本文描述的功能性,开发者302可将软件开发工具包(SDK)并入到AUT112中。举例来说,在编译时间,可将SDK包括到被编译的AUT 112中。在其他实现方式中,除了SDK之外的插件、宏、其他指令集或技术可用于提供本文描述的功能性。举例来说,可将提供SDK的至少一部分的功能性的多行计算机代码并入到AUT 112的代码库中。
在一个可能的实施方案中,SDK可向开发者302提供允许重新引导AUT流量314的用户界面。SDK可包括用以与管理服务器318建立通信的指令。举例来说,SDK可添加允许开发者302与管理模块320交互的用户界面。
管理服务器318可利用管理模块320来协调代理主机装置322或代理访问装置324中的一者或多者的活动。代理主机装置322连接至第一网络312(1)并且还连接至代理访问装置324中的一者或多者。举例来说,代理主机装置322可包括多个代理访问装置324可被栓系到的台式计算机。在所说明的示例中,四个代理访问装置324通过代理主机装置322耦合到网络312(1)。在一些实现方式中,代理主机装置322可包括平板计算机、服务器等。可将任何数目个代理访问装置324栓系到代理主机装置322。
代理访问装置324还可连接至网络接入点326。网络接入点326提供对第二网络312(2)的连接性。举例来说,代理访问装置324可包括商品手机,网络接入点326可包括手机塔,并且第二网络312(2)可包括无线广域网(WWAN),诸如无线蜂窝数据网络(WCDN)。第二网络312(2)继而可连接至第一网络312(1)。举例来说,由电信公司运营的WCDN可与互联网主干网提供商互连或者与其具有对等协议。因此,第二网络312(2)的用户可能够访问第一网络312(1)上的资源,并且反之亦然。
代理访问装置324可定位在与TD 102(1)的地理位置不同的地理位置310(2)处。举例来说,可将代理主机装置322和附加的代理访问装置324安装在第二地理位置310(2)处,诸如另一城市、州、国家等中。
此外,可将TD 102(2)连接至网络312(1)、网络接入点326或通过另一网络接入点。TD 102(2)可通过网络312(1)接收数据并且将指示TD 102(2)的操作的数据提供给分析系统108。所述数据可包括熵数据120、网络数据、其他数据或它们的任何组合。
返回到AUT 112,作为测试过程的部分,开发者302可使用用户界面来访问管理服务器318的管理模块320。通过用户界面,开发者302可选择要在测试期间使用的特定地理位置310或特定代理访问装置324中的一者或多者。管理模块320可维护关于代理访问装置324的信息,诸如地理位置310、可用性、成本、代理访问装置324的类型等。管理模块320还可诸如经由选择加入选项或基于在下载期间接收的信息而从TD 102(2)确定信息。
管理模块320可协调在AUT 112与被选定的代理访问装置324之间的第一连接的建立。举例来说,基于开发者302的选择,管理模块320可确定代理主机装置322并且检索信息,诸如数字证书、加密证书、网络地址、其他信息或它们的任何组合。在一个实现方式中,管理模块320可与代理主机装置322通信以使代理主机装置322准备好与AUT 112通信。在另一实现方式中,管理模块320可将配置数据提供给AUT 112,所述AUT继而连接至代理主机装置322并且发送所述配置数据。
在测试期间,可通过第一网络312(1)将AUT流量314路由到代理主机装置322,通过代理访问装置324路由到第二网络312(2),并且随后路由到第一网络312(1)上以最终到达目的地装置,诸如服务器、另一计算装置、另一TD 102、分析系统108、另一装置或它们的任何组合。AUT流量314可包括出站应用流量和入站应用流量。出站应用流量可包括从AUT 112发送到目的地装置的数据,并且入站应用流量可包括从目的地装置发送到AUT 112的数据。AUT流量314可表示可与(例如)TD 102的网络收发器捕获的网络吞吐量数据分开地捕获的网络吞吐量数据。
在操作期间,AUT 112可将出站应用流量引导到与选定的代理访问装置324相关联的代理主机装置322。代理主机装置322继而将出站应用流量传递到代理访问装置324,所述代理访问装置随后将出站应用流量发送到第二网络312(2)。第二网络312(2)随后可将出站应用流量引导到目的地装置。来自目的地装置的入站应用流量可遵循相反的路径。
管理服务器318可收集与系统的操作相关联的日志数据332。日志数据332可包括代理会话数据334。代理主机装置322可被配置为产生代理会话数据334。代理会话数据334可包括“面包屑”数据、与代理访问装置324的操作相关联的信息、由代理主机装置322传递的数据的包捕获、其他数据或它们的任何组合。所述面包屑数据可包括在特定时刻或时间间隔内的一个或多个操作参数,所述一个或多个操作参数包括网站上的当前页、代理访问装置324连接到的网络类型、所接收的数据量、所传输的数据量、到目的地装置的等待时间、数据吞吐量、接收信号强度、传输功率、与第二网络312(2)上的数据传递相关联的成本、熵数据120、其他数据或它们的任何组合。举例来说,所述面包屑数据可指示代理访问装置324在时间戳201508172312030092处使用接收信号强度为14dBm、传输功率为7dBm、数据吞吐量为400Kbps等的4G网络连接而连接到网页http://www.example.com/main.html。代理会话数据334因此是在期望的地理位置310处在现实世界第二网络312(2)上操作的AUT 112的产品。所得的代理会话数据334可表示现实世界,包括相关联的复杂性和细微差别。
管理服务器318可获得代理会话数据334。举例来说,代理主机装置322可在测试会话期间、在测试会话之后、周期性地或根据预定时间表将代理会话数据334发送到管理服务器318。在另一示例中,管理服务器318可向代理主机装置322轮询代理会话数据334。
作为代理会话数据334的替代或补充,一个或多个部署的装置336可将部署的日志数据338提供给管理服务器318。部署的装置336可包括(但不限于)智能电话、膝上型计算机、平板计算机、嵌入式装置、可穿戴计算装置、器具、汽车、飞行器等。部署的装置336可执行并入有SDK的AUT 112,所述SDK可被配置为在部署的装置336上的AUT 112的操作期间收集部署的日志数据338。部署的日志数据338可包括指示以下各项的信息:在特定时间处包括部署的装置336的地理位置310的数据、面包屑数据以及与AUT流量314或部署的装置336的操作相关联的其他信息。举例来说,用户可同意允许收集部署的装置336上的部署的日志数据338。在用户使用AUT 112时,收集部署的日志数据338。因此,部署的日志数据338包括使用AUT 112从实际用户获得的现实世界信息。可从诸如GPS接收器的定位装置、从诸如Wi-Fi热点地理位置查找的服务、从网络提供商基于若干网络接入点326处的信号强度或时间延迟等获得地理位置310数据。
分析模块340可处理代理会话数据334并且产生报告数据342。举例来说,分析模块340可解析代理会话数据334以确定在发送第一请求时的第一时间戳和在接收到对所述第一请求的第一响应时的第二时间戳。基于所述第一时间戳和第二时间戳,可确定用以履行对第二网络312(2)的请求的等待时间。
在一些实现方式中,分析模块340可确定图像序列的第一数据项(例如,图像)的数据值的子集。分析模块340可进一步基于所述数据值子集来确定所述第一数据项的第一熵值。举例来说,分析模块340可从图像确定数据值的子集并且可确定所述子集的概率。所述概率可表示所述数据值子集具有特定值的可能性。可通过对所述概率求和来确定所述第一熵值。其他实现方式也是可能的。
在一些实现方式中,报告数据342可指定对AUT 112的可能的修改的一个或多个优化。举例来说,报告数据342可指定在超过阈值的等待时间下产生请求的AUT 112的特定部分。
可实时地或以指定间隔将部署的日志数据338传输到管理服务器318或另一装置。举例来说,部署的装置336上的AUT 112可被配置为实时地发送部署的日志数据338。实时或接近实时可包括在阈值最大时间量内发生的动作。举例来说,部署的日志数据338如果是在100毫秒(ms)内被收集和传输则可被视为是实时的。在实时或接近实时的配置中,管理服务器318可能够快速地产生指示与AUT 112相关联的问题的报告数据342。因此,开发者302可能够快速地缓解问题,从而提高用户体验。
在所说明的示例中,管理服务器318可(例如,经由网络接入点326、经由网络312(1)、通过代理主机装置322或它们的任何组合)收集与在各种地理位置310且在各种状况下执行AUT 112的各种装置相关的数据。分析系统108可接收指示一个或多个TD 102的操作的数据以及来自管理服务器318的数据。
分析系统108可将来自TD 102或来自管理服务器318的所接收的数据存储在日志数据124中。所述数据可包括熵数据126和网络数据128。在一些实施方案中,网络数据128可包括如上文所论述的面包屑数据。分析系统108可处理熵数据126和网络数据128以确定指示TD 102和AUT 112的操作的数据。分析系统108可包括分析模块130,所述分析模块可基于熵数据126、网络数据128、其他数据或它们的任何组合来产生报告数据134,所述报告数据包括指示TD 102和AUT 112的操作的数据。开发者302可使用报告数据134来缓解问题,提高AUT 112的功能性和响应性,并且提高用户体验。
图4描绘根据一个实现方式的充当分析系统108的计算装置的框图400。分析系统108可包括一个或多个计算装置。任何类型的计算装置和任何数目个连网的计算装置可执行本文描述的实现方式。
一个或多个电源404可被配置为提供适合于操作分析系统108的部件的电力。在一些实现方式中,电源404可包括可再充电电池、燃料电池、光伏电池、电力调节电路、其他装置、其他电路或它们的任何组合。
分析系统108可包括被配置为执行一个或多个所存储的指令的一个或多个硬件处理器406(处理器)。处理器406可包括一个或多个核。一个或多个时钟408可提供指示日期、时间、滴答声等的信息。举例来说,处理器406可使用来自时钟408的数据以产生时间戳、触发预编程的动作等。分析系统108可包括允许在分析系统108的各种模块和部件之间传递数据的一根或多根总线或其他内部通信硬件或软件。
分析系统108可包括一个或多个通信接口410,诸如输入/输出(I/O)接口412、网络接口414等。通信接口410可使分析系统108或分析系统108的部件能够与其他装置或分析系统108的其他部件通信。I/O接口412可包括诸如集成电路间(I2C)、串行外围接口总线(SPI)、由通用串行总线(USB)实施者论坛颁布的USB、RS-232等的接口。
I/O接口412可耦合到一个或多个I/O装置416。I/O装置416可包括与分析系统108相关联的输入装置或输出装置的任何方式。举例来说,I/O装置416可包括触摸传感器、键盘、鼠标装置、传声器、图像传感器(例如,相机)、扫描仪、显示器、扬声器、触觉装置、打印机、定位装置等。所述定位装置可包括卫星无线电导航系统、惯性导航系统、地面无线电导航系统或被配置为产生指示地理位置310的数据的其他装置中的一者或多者。举例来说,卫星无线电导航系统可包括全球定位系统(GPS)接收器,地面无线电导航系统可利用来自网络接入点326的信息等。在一些实现方式中,I/O装置416可与分析系统108物理地合并或者可在外部放置。
网络接口414可被配置为提供在分析系统108与诸如I/O装置416、路由器、接入点等其他装置之间的通信。网络接口414可包括被配置为耦合到一个或多个网络312的装置,所述一个或多个网络包括局域网(LAN)、WLAN、广域网(WAN)、WWAN等。举例来说,网络接口414可包括与以太网、Wi-Fi、蓝牙、ZigBee、Z波、3G、4G、LTE等兼容的装置。
如图4中所示,分析系统108可包括一个或多个存储器418。存储器418可包括一个或多个非暂时性计算机可读存储介质(CRSM)。所述CRSM可为以下各项中的任何一者或多者:电子存储装置、磁性存储装置、光学存储装置、量子存储装置、机械计算机存储装置、固态存储器装置等。存储器418可提供对计算机可读指令、数据结构、程序模块和用于操作分析系统108的其他数据的存储。数个示例性模块被示出为存储在存储器418中,但相同的功能性可以可替代地在硬件、固件中实施或实施为片上系统(SoC)。
存储器418可包括一个或多个操作系统(OS)420。OS 420可被配置为管理硬件资源装置,诸如I/O接口412、网络接口414、I/O装置416,并且向在处理器406上执行的应用或模块提供各种服务。OS 420可实施:由FreeBSD项目颁布的FreeBSD操作系统的变体;UNIX或类UNIX的操作系统;由Linus Torvalds颁布的Linux操作系统的变化形式;来自美国华盛顿州雷德蒙市的微软公司的Windows操作系统;由美国加利福尼亚州库比蒂诺市的苹果公司颁布的Mac OS或iOS;或其他操作系统。
数据存储区422以及以下模块中的一者或多者也可存储在存储器418中。可将所述模块执行为前台应用、后台任务、守护进程等。数据存储区422可使用平面文件、数据库、链接表、树、可执行代码、脚本或其他数据结构来存储信息。在一些实现方式中,数据存储区422或数据存储区422的一部分可跨一个或多个其他装置分布,所述一个或多个其他装置包括其他计算装置、网络附接存储装置等。
通信模块424可被配置为使用通信接口410中的一者或多者来与一个或多个其他装置建立通信。通信可经过认证、加密等。举例来说,通信模块424可利用数字证书来认证在通信中涉及的装置的身份。举例来说,通信模块424可被配置为与代理主机装置322建立虚拟专用网络(VPN)连接或隧道。
管理模块426可被配置为通过网络(诸如图1中的网络110或图3中的网络312(1))与管理服务器318建立通信。管理模块426可包括部署的装置数据收集模块428,所述部署的装置数据收集模块被配置为从部署的装置336或从管理服务器318检索指示部署的装置336的操作的数据。管理模块426还可包括数据相关模块430,所述数据相关模块使从各种来源接收的数据相关。数据相关模块430可将所接收的数据存储在数据存储区422内的日志数据124中。日志数据124可包括熵数据126和网络数据128。
可包括可被配置为执行多种功能的其他模块432。
分析模块130可处理熵数据126和网络数据128以确定指示TD 102、AUT 112、被测其他装置或它们的任何组合的操作的数据。分析模块130可进一步处理所述数据以确定对应于与TD 102中的至少一者相关联的时间序列内的熵数据126的重复子集的一个或多个模式。此外,分析模块130可确定性能问题和发生特定性能问题所处的情形。分析模块130可基于对日志数据124的处理而产生报告数据134。此外,数据存储区422可包括其他数据436。
在一些实现方式中,分析模块130可确定图像序列的第一数据项(例如,图像)的数据值的子集。分析模块130可进一步基于所述数据值子集来确定所述第一数据项的第一熵值。举例来说,分析模块130可从图像确定数据值的子集并且可确定所述子集的概率。所述概率可表示所述数据值子集具有特定值的可能性。可通过对所述概率求和来确定所述第一熵值。其他实现方式也是可能的。
图5是绘示本公开的范围内的计算装置502的框图500。计算装置502可包括一个或多个TD 102、工作站308、代理访问装置324、部署的装置336或其他装置。任何类型的计算装置502和任何数目个连网的计算装置可执行本文描述的实现方式。
一个或多个电源504可被配置为提供适合于操作计算装置502的部件的电力。在一些实现方式中,电源504可包括可再充电电池、燃料电池、光伏电池、电力调节电路等。
计算装置502可包括被配置为执行一个或多个所存储的指令的一个或多个硬件处理器506(处理器)。处理器506可包括一个或多个核。一个或多个时钟508可提供指示日期、时间、滴答声等的信息。举例来说,处理器506可使用来自时钟508的数据以产生时间戳、触发预编程的动作等。计算装置502可包括允许在计算装置502的各种模块和部件之间传递数据的一根或多根总线或其他内部通信硬件或软件。
计算装置502可包括一个或多个通信接口510,诸如输入/输出(I/O)接口512、网络接口514等。通信接口510可使计算装置502或计算装置502的部件能够与其他装置或计算装置502的其他部件通信。I/O接口512可包括诸如集成电路间(I2C)、串行外围接口总线(SPI)、由通用串行总线(USB)实施者论坛颁布的USB、RS-232等的接口。
I/O接口512可耦合到一个或多个I/O装置516。I/O装置516可包括与计算装置502相关联的输入装置或输出装置的任何方式。举例来说,I/O装置516可包括触摸传感器、键盘、鼠标装置、传声器、图像传感器(例如,相机)、扫描仪、显示器、扬声器、触觉装置、打印机、定位装置等。所述定位装置可包括卫星无线电导航系统、惯性导航系统、地面无线电导航系统或被配置为产生指示地理位置310的数据的其他装置中的一者或多者。举例来说,卫星无线电导航系统可包括全球定位系统(GPS)接收器,地面无线电导航系统可利用来自网络接入点326的信息等。在一些实现方式中,I/O装置516可与计算装置502物理地合并或者可在外部放置。
网络接口514可被配置为提供在计算装置502与诸如I/O装置516、路由器、接入点等其他装置之间的通信。网络接口514可包括被配置为耦合到一个或多个网络312的装置,所述一个或多个网络包括局域网(LAN)、WLAN、广域网(WAN)、WWAN等。举例来说,网络接口514可包括与以太网、Wi-Fi、蓝牙、ZigBee、Z波、3G、4G、LTE等兼容的装置。
计算装置502可包括订户身份模块(SIM)518。举例来说,TD 102和部署的装置336可包括SIM 518。SIM 518可包括可存储信息的非暂时性计算机可读存储介质,所述信息诸如为国际移动订户身份(IMSI)号、加密密钥、集成电路卡标识符(ICCID)、联系信息或其他数据。网络接口514可使用SIM 518来与网络312中的一者或多者通信。举例来说,可检索存储在SIM 518中的IMSI和加密密钥,并且使用所述IMSI和加密密钥来与WCDN建立通信。
如图5中所示,计算装置502可包括一个或多个存储器520。存储器520可包括一个或多个非暂时性计算机可读存储介质(CRSM)。所述CRSM可为以下各项中的任何一者或多者:电子存储装置、磁性存储装置、光学存储装置、量子存储装置、机械计算机存储装置、固态存储装置等。存储器520可提供对计算机可读指令、数据结构、程序模块和用于操作计算装置502的其他数据的存储。数个示例性模块被示出为存储在存储器520中,但相同的功能性可以可替代地在硬件、固件中实施或实施为片上系统(SoC)。
存储器520可包括一个或多个操作系统(OS)522。OS 522可被配置为管理硬件资源装置,诸如I/O接口512、网络接口514、I/O装置516,并且向在处理器506上执行的应用或模块提供各种服务。OS 522可实施:由FreeBSD项目颁布的FreeBSD操作系统的变体;UNIX或类UNIX的操作系统;由Linus Torvalds颁布的Linux操作系统的变化形式;来自美国华盛顿州雷德蒙市的微软公司的Windows操作系统;由美国加利福尼亚州库比蒂诺市的苹果公司颁布的Mac OS或iOS;或其他操作系统。
数据存储区524以及以下模块中的一者或多者也可存储在存储器520中。可将所述模块执行为前台应用、后台任务、守护进程等。数据存储区524可使用平面文件、数据库、链接表、树、可执行代码、脚本或其他数据结构来存储信息。在一些实现方式中,数据存储区524或数据存储区524的一部分可跨一个或多个其他装置分布,所述一个或多个其他装置包括其他计算装置502、网络附接存储装置等。
通信模块526可被配置为使用通信接口510中的一者或多者来与一个或多个其他装置建立通信。通信可经过认证、加密等。举例来说,通信模块526可利用数字证书来认证在通信中涉及的装置的身份。举例来说,通信模块526可被配置为与代理主机装置322建立虚拟专用网络(VPN)连接或隧道。
存储器520可存储AUT 112。如上文描述,在一些实现方式中,AUT 112可并入有软件开发工具包(SDK)的至少一部分。SDK的元件可被配置为在一个或多个硬件处理器506上执行。这些元件可于在计算装置502上执行的操作系统522的用户空间内执行,相比在内核空间内执行。举例来说,AUT 112和SDK元件可在用户账户的权限下执行,其中第一用户账户在OS 522内具有比根账户、超级用户、管理员或其他类型的高层账户更小的权限。
在一些实施方案中,SDK可被配置为将AUT流量314引导到特定网络地址以及从特定网络地址引导所述AUT流量。举例来说,SDK可能够进行配置以拦截出站应用流量并且将那个流量引导到选定的代理主机装置322。在一个实现方式中,SDK可实施或请求诸如由通信模块526提供的VPN功能性。举例来说,SDK可向通信模块526发出请求以建立到代理主机装置322的加密隧道。一旦建立,便可通过VPN将AUT流量314引导到代理主机装置322。
存储器520中的性能模块114可监测AUT 112的操作。性能模块114可确定指示多个数据项中的选定的数据项内的数据值的分布的熵值138。性能模块114可基于熵值138来确定指示AUT 112、计算装置502、网络吞吐量或它们的任何组合的性能的数据。在一些情况下,指示性能的数据可基于某一其他系统的性能,诸如网络服务器响应的延迟。
在示例中,性能模块114可确定图像序列中的第一图像的第一熵值138和所述图像序列中的第二图像的第二熵值138。性能模块114可基于所述第一熵值138和所述第二熵值138来确定指示计算装置502的或AUT 112的性能的数据。性能模块114可处理图像数据116以确定熵值138。此外,性能模块114可将熵数据120和网络流量数据122存储在数据日志108中。此外,性能模块114可产生报告数据532,所述报告数据可存储在数据存储区524中并且任选地被发送到另一计算装置进行检视。
在一个示例中,当所述图像序列的熵值138在预定时期内未改变时,可识别等待时间间隔144。在一些情况下,等待时间间隔144内的熵值的正弦曲线或重复变化可对应于加载指示符106。
在另一示例中,当图像序列的子集的熵值138表示在时间序列内重复的模式时,可使所述模式与输入数据、应用代码或其他操作参数相关以检测指示输入的签名。举例来说,可处理第一子集以确定第一熵值,并且可处理第二子集以确定第二熵值。可基于在时间序列内的熵值的重复子集来确定模式。可替代地,可根据历史数据来确定模式。其他实施方案也是可能的。
开发者模块528可存储在存储器520中。开发者模块528可包括集成开发环境、构建系统等中的一者或多者。举例来说,开发者模块528可包括苹果公司的Xcode、谷歌公司的Android Studio、在www.gradle.org颁布的Gradle、在www.jenkins-ci.org颁布的Jenkins、在www.travis-ci.org颁布的Travis CI、Perforce软件公司的Perforce等。
其他模块530也可存在于存储器520中。在一些实现方式中,所述模块中的一者或多者可至少部分地存储在其他装置的存储器520中,可至少部分地在另一装置上执行等。举例来说,与开发者模块528相关联的一个或多个功能可在服务器上执行。
由计算装置502使用的各种信息可存储在数据存储区524中。举例来说,应用数据534可存储在数据存储区524中并且可包括与诸如AUT 112、开发者模块528等的模块的操作相关联的信息。其他数据536也可存储在数据存储区524中。其他数据536可包括测试配置数据,所述测试配置数据包括与对装置的测试相关联的信息。举例来说,所述测试配置数据可指定由开发者302选择的将用于网络测试的第二地理位置310(2)、代理主机装置322的网络地址、访问代理主机装置322的证书、与访问代理访问装置324相关联的成本、来自管理服务器318的关于代理主机装置322、代理访问装置324的信息等。另外,其他数据536可包括一个或多个阈值。举例来说,所述阈值可包括等待时间,当超过所述等待时间时得到报告数据532中的警告。阈值还可包括最大值、最小值、值的范围等。
在不同的实现方式中,不同的计算装置502可具有不同的能力或容量。举例来说,与TD 102或部署的装置336的处理器506能力和存储器520容量相比,工作站308可具有显著更多的处理器506能力和存储器520容量。
图6是根据一个实现方式的在本公开的范围内的充当管理服务器318的计算装置的框图600。管理服务器318可提供功能性,诸如协调在AUT 112与连接至代理主机装置322的代理访问装置324之间的通信。
类似于上文关于图4描述的分析系统108,管理服务器318可包括以下各项中的一者或多者:电源602、硬件处理器604(处理器)、时钟606或通信接口608。通信接口608可包括I/O接口610、网络接口612等。
I/O接口610可耦合到一个或多个I/O装置614。I/O装置614可包括输入装置或输出装置的任何方式,诸如上文关于图4所描述。在一些实现方式中,I/O装置614可与管理服务器318物理地合并或者可在外部放置。
网络接口612可被配置为在管理服务器318与其他装置之间提供通信。如上文关于图4所描述,网络接口612可包括被配置为耦合到一个或多个网络312的装置。
管理服务器318可包括允许在管理服务器318的各种模块和部件之间传递数据的一根或多根总线或其他内部通信硬件或软件。
如图6中所示,管理服务器318可包括一个或多个存储器616,诸如上文关于图4所描述。存储器616可包括一个或多个非暂时性CRSM。存储器616可提供对计算机可读指令、数据结构、程序模块和用于操作管理服务器318的其他数据的存储。数个示例性模块被示出为存储在存储器616中,但相同的功能性可以可替代地在硬件、固件中实施或实施为SoC。
存储器616可包括OS 618,诸如上文关于图4所描述。
数据存储区620以及以下模块中的一者或多者也可存储在存储器616中。可将所述模块执行为前台应用、后台任务、守护进程等。数据存储区620可使用平面文件、数据库、链接表、树、可执行代码、脚本或其他数据结构来存储信息。在一些实现方式中,数据存储区620或数据存储区620的一部分可跨一个或多个其他装置分布,所述一个或多个其他装置包括其他计算装置、网络附接存储装置等。
通信模块622可被配置为使用通信接口608中的一者或多者来与一个或多个其他装置建立通信。通信可经过认证、加密等。举例来说,通信模块622可利用数字证书来认证在通信中涉及的装置的身份。
存储器616可存储管理模块320。管理模块320可包括开发者接口模块624、协调模块626、部署的装置数据收集模块628等中的一者或多者。分析模块340、会计模块630或其他模块632也可存在于存储器316中。
开发者接口模块624向开发者302或由开发者302使用的应用提供接口功能性。举例来说,开发者接口模块624可为开发者302呈现用户界面以选择特定代理访问装置324,或者可包括应用编程接口(API),SDK可使用所述应用编程接口以访问管理服务器318的功能中的一者或多者。在一些实现方式中,可提供开发者接口模块624的至少一部分作为SDK的部分,或者可将所述至少一部分集成在AUT 112内。
协调模块626被配置为协调系统300的各种功能。协调模块626可被配置为访问存储在数据存储区620中的系统管理数据634以引导系统300的操作。系统管理数据634可包括状态数据636,诸如代理主机装置(PHD)状态数据638、代理访问装置(PAD)状态数据640等。PHD状态数据638可包括信息,诸如网络地址、操作状态、指示所安装的软件的信息、所安装的软件的版本、当前利用率等。PAD状态数据640可包括信息,诸如代理访问装置324的品牌和型号、代理访问装置324的OS版本、与第二网络312(2)的连接状态、代理访问装置324当前是否由另一AUT 112使用等。
系统管理数据634还可包括开发者账户数据642。开发者账户数据642可包括信息,诸如个人账户登录名和口令、计费信息、使用信息等。
系统管理数据634还可包括装置配置数据644。装置配置数据644可包括可用于配置代理主机装置322或代理访问装置324中的一者或多者的指令、应用、模块等。举例来说,装置配置数据644可包括可由代理主机装置322执行以将指令发送到代理访问装置324的一个或多个脚本。这些指令可配置代理访问装置324以在代理主机装置322与第二网络312(2)之间传递数据。
数据存储区620还可存储诸如上文描述的测试配置数据646。在一些实现方式中,管理服务器318可产生测试配置数据646的至少一部分。测试配置数据636的产生可至少部分地基于由开发者302提供的信息。举例来说,开发者302可使用开发者接口模块624来指定参数,诸如不同类型的测试参数、警报限制、测试阈值等。基于这些参数,管理模块320可产生测试配置数据646。在一些实现方式中,测试配置数据646可由开发者302修改,或者可完全由开发者302或另一装置或实体产生。
返回到协调模块626,系统管理数据634和测试配置数据646可用于向开发者302提供测试功能性。举例来说,开发者302可使用开发者接口模块624来请求对AUT 112的测试服务。协调模块626可评估状态数据636以确定可供使用的信息,诸如地理位置310、网络类型等。基于此确定,协调模块626可通过开发者接口模块624向开发者302呈现信息。举例来说,所述信息可指示可用于测试的那些地理位置310和代理访问装置324、与使用那些资源相关联的成本等。
响应于开发者302的选择或预定义的默认,协调模块626可协调建立在TD 102与代理访问装置324之间的连接,使得来自AUT 112的AUT流量314通过代理访问装置324和第二网络312(2)进行引导以到达目的地装置。举例来说,响应于开发者302在用户界面内的选择,AUT 112可接收与在选定的第二地理位置310(2)处的代理主机装置322相关联的网络地址和证书。AUT 112可使用所述网络地址和证书来与代理主机装置322建立连接。因此可在正在TD 102或工作站308上执行的AUT 112与代理主机装置322之间直接交换AUT流量314。在另一实现方式中,管理服务器318可充当在AUT 112与代理主机装置322之间中继AUT流量314的中介。
协调模块626可被配置为获取日志数据332。举例来说,协调模块626可与TD 102或分析系统108建立连接以接收TD日志数据650。协调模块626可与代理主机装置322建立连接以接收代理会话数据334的进行中的流。当开发者302正在测试AUT 112时可实时地或接近实时接收代理会话数据334的流。举例来说,可每五秒将代理会话数据334发送到管理服务器118。
在一些实现方式中,日志数据332可包括TD日志数据650。举例来说,SDK或嵌入AUT112中的多行代码可将TD日志数据650发送到管理服务器318。
部署的装置数据收集模块628可被配置为与部署的装置336通信并且获得部署的日志数据338。部署的装置数据收集模块628可被配置为在使用AUT 112期间实时地或接近实时地接收部署的日志数据338。举例来说,当在部署的装置336上执行的AUT 112正在通过特定地理位置310处的特定网络312与目的地装置交换AUT流量314时,可产生部署的日志数据338。管理服务器318可使用部署的日志数据338来确定AUT 112是否正在经历特定网络312上、特定地理位置310处等的问题。
日志数据332还可包括与来自TD 102中的一者或多者、代理访问装置324中的一者或多者以及一个或多个部署的装置336的熵值138相对应的熵数据656。
如上文描述,分析模块340可被配置为使用存储在数据存储区620中的信息来产生报告数据658。举例来说,分析模块340可分析日志数据332以确定是否存在其中AUT 112使用目的地装置的资源而经历问题的特定WCDN或城市部分。
会计模块630可被配置为确定并评估与使用系统300相关联的费用、向代理访问装置324的运营商提供报酬等。举例来说,会计模块630可向开发者302提供针对一定时间量、所传递的数据量等使用特定地理位置310处的特定代理访问装置324的成本。在一些实现方式中,用户可将他们的移动装置加入系统并且允许那个移动装置充当代理访问装置324。举例来说,在用户原本没有使用他们的手机的当日时间期间,他们可将他们的手机栓系到代理主机装置322并且允许将那个手机用作代理访问装置324。在此类使用期间,存储在手机上的与用户相关联的数据可得到保护,在手机上执行的其他应用可被终止等。可采取这些和其他措施来保卫用户的数据的安全性、防止在手机上执行的应用影响测试结果等。作为对允许此使用的回报,用户可接收报酬。举例来说,在用户是开发者302的情况下,开发者302可在他们的账户上接收到信用。那个信用可用于使用与另一开发者302相关联的代理访问装置324来运行测试。在其他实现方式中,所述报酬可包括金融转账,诸如呈货币的形式的支付。
在一些实现方式中,所述模块中的一者或多者可至少部分地存储在其他装置的存储器中,可至少部分地在另一装置上执行等。举例来说,与会计模块630相关联的一个或多个功能可在另一服务器上执行。
数据存储区620内的其他数据660可包括信息,诸如与管理服务器318或其模块相关联的配置和设置。
图7是根据一个实现方式的在本公开的范围内的充当代理主机装置322的计算系统的框图700。可使用多种不同类型的计算装置来实施代理主机装置322。举例来说,代理主机装置322可包括微型台式计算机、平板计算机、服务器等。
类似于上文关于图4和图6描述的,代理主机装置322可包括以下各项中的一者或多者:电源702、硬件处理器704(处理器)、时钟706或通信接口708。通信接口708可包括I/O接口710、网络接口712等。
I/O接口710可耦合到一个或多个I/O装置714。I/O装置714可包括输入装置或输出装置的任何方式,诸如上文关于图4和图6所描述的那些。在一些实现方式中,I/O装置714可与代理主机装置322物理地合并或者可在外部放置。
网络接口712可被配置为在代理主机装置322与其他装置之间提供通信。如上文关于图4和图6所描述,网络接口712可包括被配置为耦合到一个或多个网络312的装置。
代理主机装置322可包括允许在代理主机装置322的各种模块和部件之间传递数据的一根或多根总线或其他内部通信硬件或软件。
如图7中所示,代理主机装置322可包括一个或多个存储器716,诸如上文关于图4所描述。存储器716可包括一个或多个非暂时性CRSM。存储器716可提供对计算机可读指令、数据结构、程序模块和用于操作代理主机装置322的其他数据的存储。数个示例性模块被示出为存储在存储器716中,但相同的功能性可以可替代地在硬件、固件中实施或实施为SoC。
存储器716可包括OS 718,诸如上文关于图4所描述。
数据存储区720以及以下模块中的一者或多者也可存储在存储器716中。可将所述模块执行为前台应用、后台任务、守护进程等。数据存储区720可使用平面文件、数据库、链接表、树、可执行代码、脚本或其他数据结构来存储信息。在一些实现方式中,数据存储区720或数据存储区720的一部分可跨一个或多个其他装置分布,所述一个或多个其他装置包括其他计算装置、网络附接存储装置等。
通信模块722可被配置为使用通信接口708中的一者或多者来与一个或多个其他装置建立通信。通信可经过认证、加密等。举例来说,通信模块722可利用数字证书来认证在通信中涉及的装置的身份。举例来说,通信模块722可被配置为与TD 102、工作站308或管理服务器318中的一者或多者建立VPN连接或隧道。
存储器716可存储以下各项中的一者或多者:代理访问装置(PAD)配置模块724、流量代理模块726、数据收集模块728、性能模块730或其他模块732。
PAD配置模块724被配置为将一个或多个指令或命令发送到连接至代理主机装置322的代理访问装置324。可提供这些指令作为从管理服务器318接收的装置配置数据738的部分。这些指令可被设计成使代理访问装置324能够在第二网络312(2)上发送和接收流量、提供诸如PAD状态数据736的信息等。举例来说,PAD配置模块724可将本地流量模块和本地状态模块发送到代理访问装置324并执行所述本地流量模块和本地状态模块。举例来说,PAD配置模块724可利用由Michael DeHaan开发且在www.ansible.com颁布的Ansible软件平台。
流量代理模块726被配置为在正在执行AUT 112的TD 102与代理访问装置324之间传递AUT流量314。举例来说,在代理主机装置322利用Linux OS的情况下,可使用Linux代理服务。流量代理模块726可被配置为连接原本不同类型的接口。举例来说,代理主机装置322可使用网络接口712以连接第一网络312(1),并且使用USB I/O接口710以连接(或栓系)至代理访问装置324。一旦经过连接,便可在OS模块718将到代理访问装置324的USB连接呈现为可借以路由流量的网络接口712。
在代理主机装置322与代理访问装置324之间的连接或栓系在一些实现方式中可为无线的。举例来说,代理主机装置322和代理访问装置324可使用蓝牙无线接口彼此通信。
数据收集模块728可被配置为获得以下各项中的一者或多者:PHD状态数据734、PAD状态数据736、装置配置数据738、代理会话数据740、熵数据742、其他数据744或它们的任何组合。应了解,管理服务器318可聚合来自多个PHD 322的PHD状态数据734以形成PHD状态数据638。管理服务器318可聚合来自多个PHD 322的PAD状态数据736以形成PAD状态数据640。此外,管理服务器318可聚合来自多个PHD 322的装置配置数据738、代理会话数据740和熵数据742以及其他数据744以分别形成装置配置数据646、代理会话数据334、熵数据656和其他数据660的部分。举例来说,数据收集模块728可获得正在代理主机装置322与代理访问装置324之间传递的AUT流量314的包捕获。可在代理会话数据334中包括包捕获。举例来说,由www.tcpdump.org颁布的TCPDUMP库可用于获取所述包捕获。如上文描述,可将代理会话数据334发送到管理服务器318、TD 102、工作站308或其他装置中的一者或多者。
所述模块中的一者或多者可在OS模块718的用户空间中执行。举例来说,代理访问装置配置模块724、流量代理模块726或数据收集模块728中的一者或多者可使用与OS模块718的用户空间相关联的账户权限来执行。相比之下,OS模块718可提供会提供附加的访问权限或级别的账户,诸如根账户、超级用户、管理员等。
在一些实现方式中,所述模块中的一者或多者可至少部分地存储在其他装置的存储器716中,可至少部分地在另一装置上执行等。
数据存储区720内的其他数据744可包括信息,诸如与代理主机装置322或其模块相关联的配置和设置。
数据存储区720内的熵数据742可包括从一个或多个PAD 324接收的时间序列熵信息。PHD 322可处理熵数据742以基于熵值138来确定指示PAD 324中的一者或多者的性能的数据。应了解,指示性能的数据可基于某一其他系统的性能,诸如网络服务器响应的延迟。PHD 322可将指示性能的数据传送到管理服务器318、分析系统108或以上两者。
如何检测低页内容
熵时间序列提供了用于分析视频数据、音频数据或多媒体数据(即,视频、音频、文本或它们的任何组合)中的页转变的方便的定性工具。还需要定量地描述此曲线的特性。举例来说,谷歌的研究表明,等待内容达一秒以上的用户在精神上脱离了他们关注的任务。可从所记录的应用会话的熵时间序列捕获移动应用中的此常见的性能问题。最简单的方法可包括设置熵和时间的阈值。举例来说,在大于诸如一秒或更多的时间阈值的一段时期内的小于0.45的归一化的熵值可为可指示对许多应用的不利的用户体验的数据的稳健指示符。在其他示例中,可使用优化技术或机器学习来配置固定阈值或动态阈值。可类似地捕获其他期望的视频转变行为。举例来说,某些旋转器以固定周期在大小、形状或其他性质方面改变。熵时间序列可将这些变化反映为小的周期性波动,可使用分析技术来分析和识别所述周期性波动。
如何将网络活动与熵合并
网络流量和在应用或网页上显示的内容在根本上有联系。用户界面无法显示它不具有的信息,并且网络连接提供用于检索由应用请求的信息的手段。可通过共同的时间线将熵时间序列与视频回放、网络流量和其他数据源整合。此时间线可包含全部数据或经过过滤以示出每个数据源的数据的选定子集。举例来说,可能需要理解单个请求的执行。时间线可根据请求的相关时间段经过过滤,并且数据源可通过明确或含蓄限定的特征经过过滤以选择相关数据。
作为用于检测性能问题的网关的熵时间序列
将网络流量和其他数据源合并到熵时间序列的时间线中允许深入洞察用户可见的性能问题的根源。举例来说,低页内容性能问题可突出其中内容在长时期内无法显示在屏幕上的时间线的区域。网络流量常常示出在时间线的突出区域之前和期间的慢服务器连接和慢内容下载。在同一装置上和分布式装置云中的其他装置上的测试的多次复制可显露慢服务器连接是由于网络问题、单个服务器配置还是内容输送中的更广的问题。因此,熵时间序列可为用于在单个测试会话内和不同的测试环境之间的聚合比较中比较和诊断用户可见的内容问题的有价值的工具。
在下文关于图8描述合并了熵值138和网络吞吐量值的时间线的一个可能的示例。
图8描绘了根据一个实现方式的熵值138和网络吞吐量值802相对于时间140的曲线图800。在所述曲线图中,实线表示熵值138,而点线表示网络吞吐量值802。在此示例中,在共同的时间线上呈现网络吞吐量值802和熵值138。
在曲线图800中,第一间隔804(1)可对应于网络吞吐量的减小。类似地,第二间隔804(2)可对应于网络吞吐量的减小。举例来说,网络吞吐量可能已经由于网络拥塞、电力中断或某一其他因素而减小。可从TD 102、PAD 324或部署的装置336的网络收发器确定网络吞吐量值802。
在曲线图800中,时间序列数据可包括熵值138的重复序列,诸如熵模式806(1)和熵模式806(2)。应了解,熵模式806可在时间序列中的不同点处具有不同的振幅,但可共享类似的形状,诸如类似的斜率。在此示例中,可通过从第一时间到第二时间的线性减小的熵值紧接着是从第三时间到第四时间的熵值的脉冲或快速增加来表征熵模式806。在一个实现方式中,在第一时间与第二时间之间的时间可长于在第三时间与第四时间之间的时间。在一个可能的示例中,熵模式806可表示响应于诸如“向右挥扫”输入的特定输入的应用的行为。当通过用户交互从显示器104“挥扫”图像时,与显示器104相关联的熵数据120可配合所述输入而减小,并且随后可在加载新的图像时快速地增加。在另一示例中,每当应用调用特定功能时便可出现此类模式,并且所述模式可指示可需要检视或可对应于应用的预期操作的代码。其他实施方案也是可能的。
曲线图800还可包括与在其中网络吞吐量值802相对高的时间间隔期间的应用活动相对应的第三间隔808(1)。曲线图800还可包括与在其中网络吞吐量值802相对高但低于在第三间隔808(1)期间的网络吞吐量值802的时间间隔期间的应用活动相对应的第四间隔808(2)。在第四间隔808(2)期间,熵值138中的波动810可归因于屏幕或显示器104上的加载指示符的存在。
在一个可能的实现方式中,可确定在图像序列的子集的熵值138之间的差值。举例来说,可确定在第一图像与第二图像之间、在第二图像与第三图像之间等的熵值138的差值。图像序列的子集可包括所述序列的选定图像。在此示例中,所述差值可反映图像之间的熵值183的变化。当所述差值小于差值阈值时,可确定指示计算装置的较差性能的相对高的等待时间。举例来说,在图像之间并且穿过图像子集的熵值138的很小改变或不改变可指示显示器上的信息内容不在改变并且可能冻结。在一些实现方式中,可根据与提供给显示器的低信息内容或无信息内容的时期相对应的数据模式来确定差值阈值。其他实现方式也是可能的。
应理解,对时间序列熵值138和网络吞吐量值802的分析可显露程序问题、网络问题或以上两者。此外,对熵值138连同网络吞吐量值802的分析可显露可归于应用行为、可归于输入数据或可归于其他来源的数据模式。开发者302可使用所识别的模式来改进应用代码以提高性能且任选地验证预期性能。其他实施方案也是可能的。
以下代码样本演示一种计算视频中的每个图像或帧的熵值138的方法。其他实现方式可计算视频中的一个或多个图像或帧的熵值138。
视频熵示例性代码
"""
视频分析
"""
from__future__import division
import numpy as np
import cv2
DEFAULT_ENTROPY_PRECISION=4
#视频熵度量分析
def entropy(array,nbins=256):
"""计算灰度图像阵列的熵。
参数
----------
array:array-like
灰度图像阵列。
nbins:int,optional(default:256)
由数据类型支持的可能的值的数目。
灰度uint8图像支持每像素256个可能的值。
返回
-------
entropy:float
阵列熵。
"""
n=array.size
if n<2:
return 0
#注意:np.bincount返回非负的阵列的频率计数
#ints返回长度将是maxint(array)+1。
counts=np.bincount(array.ravel())
probs=counts/n
#由于0*log(0),避免nan或inf
probs=probs[probs>0]
#调整短阵列的熵
base=min(n,nbins)
#注意:log_base<256>(array)=log_base<x>(array)/log_base<x>(256)
return np.sum(-probs*np.log(probs)/np.log(base))
def calculate_video_entropy(frame_generator):
"""计算视频中的每个帧的熵。
参数
----------
frame_generator:generator or iterator
此对象将产生视频帧作为NumPy uint8阵列。
返回
-------
entropy_values:array
每个视频帧的熵度量。
"""
entropy_values=np.zeros(len(frame_generator))
for idx,frame in enumerate(frame_generator):
#将帧转换为灰度
frame=cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
#计算帧熵
entropy_values[idx]=round(entropy(frame),DEFAULT_ENTROPY_PRECISION)
return entropy_values
此系统因此提供一种至少部分地基于与装置的呈现相关联的数据的熵来确定指示装置的操作的信息的方法。此数据可用于评估特定应用、操作系统等的操作。如本领域技术人员将认识到的,还可通过其他方式使用熵数据120。
图9描绘根据一个实现方式的在本公开的范围内的基于熵值138来确定指示测试装置的操作的数据的方法的流程图900。所述方法可由TD 102、分析系统108、工作站308、管理服务器318、PHD 322、PAD 324、部署的装置336、另一装置或它们的任何组合执行。
在902处,确定图像序列,所述图像序列包括经过存储以供在TD 102的显示器104装置上呈现的第一图像和第二图像。举例来说,可从移动计算装置的显示缓冲器或高速缓存存储器中检索所述图像序列。确定经过存储以供在显示装置上呈现的第一图像和第二图像。
在904处,确定可指示第一图像内的数据值的分布的第一熵值138。在一些实施方案中,可通过以下操作来确定第一熵值138:确定包括第一图像的每个数据值的概率;以及对所确定的概率求和以计算第一熵值138。
在906处,确定可指示第二图像内的数据值的分布的第二熵值138。在一些实施方案中,可通过与用于确定第一熵值138的方式相同的方式确定第二熵值138。
在908处,基于第一熵值138和第二熵值138来确定指示TD 102的性能的数据。依据实现方式,TD 102或分析系统108可确定指示性能的数据。指示性能的数据可包括与图像的子集相关联并且随时间在图像序列内重复的熵值138的模式。在其他实现方式中,指示性能的数据可包括一段时期内的基本上静态的平均熵值138,所述一段时期可限定在其期间将低信息提供给TD 102的显示器104的等待时间间隔144。在一些情况下,可向显示器104呈现加载指示符106。在一个可能的实现方式中,当所述时期超过时间阈值时可确定等待时间间隔144。熵值138可周期性地波动,这可指示呈现在显示器104上的加载指示符106(诸如旋转器)的循环动画。在其他实现方式中,熵值138可非周期地改变。在一些实现方式中,加载指示符106可为非对称的并且可非周期地改变,这可反映为熵值138的非周期的变化。
在910处,可发送指示测试装置的性能的数据。可将所述数据发送到数据存储区。所述数据可指示测试装置自身或在测试装置的处理器上执行的应用的较差性能。可替代地或另外,可经由有线或无线通信链路将数据发送到计算装置。在一个示例中,可通过网络312将数据发送到计算装置。
图10描绘根据一个实现方式的在本公开的范围内的基于熵值138来确定指示测试装置102的操作的数据的方法的流程图1000。所述方法可由TD 102、分析系统108、工作站308、管理服务器318、PHD 322、PAD 324、部署的装置336、另一装置或它们的任何组合执行。
在1002处,可确定包括第一数据项和第二数据项的数据项序列,其经过存储以供在测试装置102的显示器104装置上呈现。举例来说,所述第一数据项和所述第二数据项可为图像数据、音频数据、触觉输出数据等。
在1004处,确定第一数据项的第一熵值138。在一些实施方案中,可通过以下操作来确定第一熵值138:确定包括第一图像的多个数据值中的每一者的概率;以及对所述概率求和以产生第一熵值138。在一些实现方式中,TD 102可确定第一熵值138。
在1006处,确定第二数据项的第二熵值138。TD 102可确定第二熵值138。在一些实施方案中,可通过与计算第一熵值的方式相同的方式确定第二熵值138。
在1008处,基于第一熵值和第二熵值来确定在第一数据项与第二数据项之间的关系。举例来说,所述关系可包括在数据项序列的子集中的数据项之间的增量或差值。所述关系可由TD 102或分析系统108确定。在向显示器104呈现的静态或低信息的等待时间间隔144期间,熵值138可具有表示加载数据的TD 102、PAD 324或部署的装置336的基本上恒定的平均熵值138。在此示例中,所述关系可指示类似的熵值138。其他实施方案也是可能的。
在涉及与熵值138的重复子集相对应的模式的替代性实施方案中,在图像序列中的相邻图像之间(或在相邻的数据项之间)的差值可限定可用于检测时间序列中的模式的斜率。在此示例中的术语“相邻”是指图像序列中的在序列中一个接一个的图像。相邻的图像不一定是大图像的部分。如果图像出于参考目的被循序地编号,则第五图像将邻近于所述序列中的第四图像和第六图像两者。其他实施方案也是可能的。
在1010处,基于第一熵值和第二熵值138以及所述关系来产生指示装置的性能的数据。所述数据可由TD 102或分析系统108产生。举例来说,指示性能的数据可指示装置的或在装置的处理器上执行的软件的操作。
在1012处,发送指示装置的性能的数据。可将所述数据发送到数据存储区。可替代地或另外,可经由有线或无线通信链路将数据发送到计算装置。在一个示例中,可通过网络312将数据发送到计算装置。
图11描绘根据一个实现方式的在本公开的范围内的确定指示熵值138的重复模式的数据的方法的流程图1100。在一些实现方式中,所述方法可由分析系统108或管理服务器318执行。在其他实现方式中,TD 102的性能模块114可通过在闲置时期期间在后台处理熵数据138来确定重复模式。
在1102处,确定包括第一子集、第二子集和第三子集的数据项序列。举例来说,可从显示缓冲器检索经过存储以供在显示装置上呈现的多个图像。所述数据项可为图像、数值(1和0、在0与255之间的灰度值、或其他范围的值)的矩阵、其他类型的数据或它们的任何组合。举例来说,灰度图像的每个数据值可表示图像内的特定像素的亮度,所述数据值可在0到255的范围内。其他数据值范围也是可能的。此外,子集可包括在它们的熵值138方面或在子集内的熵值138之间的变化方面共享相似度的数据项。举例来说,熵值138的变化的特定序列,诸如限定线性减小的斜率紧接着快速增加(诸如表示熵值138的快速改变的脉冲或陡斜率)的序列,可表示可重复的模式。在减小的斜率之前的初始的熵值138可跨时间序列而变。另外,减小的熵值138的斜率也可改变。然而,典型的减小的斜率紧接着快速增加可在各个时间发生。
在1104处,从数据项序列的第一子集确定第一熵值138。第一熵值138可表示包括第一子集内的数据项的数据值的分布。举例来说,可确定多个图像的至少一部分的第一多个熵值。所述部分可为多个图像的子集。
在1106处,从数据项序列的第二子集确定第二熵值138。举例来说,可通过与第一熵值138的方式相同的方式确定第二熵值138。
在1108处,从数据项序列的第三子集确定第三熵值138。可通过与第一熵值和第二熵值138的方式相同的方式确定所述第三熵值138。第一熵值、第二熵值和第三熵值138可由TD 102、分析系统108或管理服务器318确定,这取决于实现方式。
在1110处,基于在第一熵值138、第二熵值138与第三熵值138之间的相似度来确定重复模式。举例来说,可从第一多个熵值确定重复模式。所述模式可表示响应于输入数据、响应于执行特定功能等的应用的操作。在一些实施方案中,所述重复模式可对应于加载指示符106。
在1112处,指示计算装置的性能的数据至少部分地基于重复模式。举例来说,计算装置的性能可基于某一其他系统的性能,诸如网络吞吐量延迟、网络服务器响应的延迟或由另一系统导致的延迟。在另一示例中,计算装置的性能可基于在计算装置上执行的应用代码。其他示例也是可能的。
在一个实现方式中,指示性能的数据可包括识别计算装置的性能的原因,诸如网络吞吐量问题、用户输入、应用功能调用等。
在1114处,可发送指示性能的数据。可将所述数据发送到数据存储区。可替代地或另外,可经由有线或无线通信链路将数据发送到计算装置。在一个示例中,可通过网络312将数据发送到计算装置。
虽然上述技术描述了使用与装置的呈现相关联的视频或其他基于图像的数据,但可类似地评估其他类型的数据。举例来说,可评估音频数据或触觉数据的熵。
结合上文关于图1-图11描述的装置、系统和方法,可在时间序列中评估数据项(诸如图像)的序列内的数据值的分布中的熵,以检测可与向装置的显示器104呈现静态信息或低信息的时期相对应的等待时间间隔144。可确定每个数据项的表示数据值的概率分布的总和的熵值138。
在一些实现方式中,可将来自一个或多个装置的熵值138提供给机器学习(ML)系统或神经网络(NN)系统以分析数据。ML系统、NN系统或以上两者可处理熵值138连同网络吞吐量值和其他数据。随着时间的推移,ML系统、NN系统或以上两者可识别数据中的模式并且可将所述模式中的至少一些分类。在一些实现方式中,ML系统、NN系统或以上两者可确定特定等待时间问题的原因并且可选择性地通知开发者302来纠正编码问题并且任选地提高应用的整体性能。
在一些实现方式中,一种在计算装置上实施的方法可包括从经过存储以供在显示器104装置上呈现的包括第一图像和第二图像的图像序列确定指示第一图像内的数据值的分布的第一熵值138。所述方法还可包括从所述图像序列确定指示第二图像内的数据值的分布的第二熵值138。另外,所述方法可包括:基于第一熵值138和第二熵值138而产生指示计算装置的性能的数据;以及通过通信网络312将指示计算装置的操作的数据提供给计算装置。
可通过以下条款来说明可在本公开的范围内使用的实现方式:
条款1:一种在计算装置上实施的方法,所述方法包括:确定经过存储以供在显示装置上呈现的第一图像和第二图像;确定指示与所述第一图像相关联的数据值的分布的第一熵值;确定指示与所述第二图像相关联的数据值的分布的第二熵值;基于所述第一熵值和所述第二熵值来产生指示所述计算装置的性能的数据;以及使用通信网络将指示所述计算装置的所述性能的所述数据提供给第二计算装置。
条款2:根据条款1的方法,其还包括:基于包括所述第一图像和所述第二图像的图像序列的熵值与阈值的比较来确定低信息内容;以及基于确定一段时期内的所述低信息内容来确定较差的性能。
条款3:根据条款1到2中任一条款的方法,所产生的指示性能的数据还包括:确定所述第一熵值小于阈值;以及确定所述第二熵值小于所述阈值。
条款4:根据条款1到3中任一条款的方法,所述产生的指示性能的数据还包括:确定在所述第一熵值与所述第二熵值之间的差值;以及确定所述差值小于阈值。
条款5:根据条款1到4中任一条款的方法,其还包括:确定经过存储以供在所述显示装置上呈现的多个图像,其中所述多个图像包括所述第一图像和所述第二图像;确定所述多个图像的至少一部分的第一多个熵值;确定所述第一多个熵值中的重复模式;并且其中所述计算装置的指示性能的所述数据至少部分地基于所述重复模式。
条款6:一种计算装置,其包括:通信接口;显示装置;存储器,所述存储器存储计算机可执行指令;以及处理器,所述处理器用以执行所述计算机可执行指令以:确定经过存储以供在所述显示装置上呈现的多个图像;确定所述多个图像的至少一部分的第一熵值集,其中图像的所述熵值表示所述图像的数据值的分布;以及使用所述通信接口发送至少部分地基于所述第一熵值集的数据。
条款7:根据条款6的计算装置,其还包括致使所述处理器进行以下操作的计算机可执行指令:从所述第一图像选择第一数据值;确定所述第一数据值的第一概率值,其中所述第一概率值指示所述第一数据值具有第一值的可能性;从所述第一图像选择第二数据值;确定所述第二数据值的第二概率值,其中所述第二概率值指示所述第二数据值具有第二值的可能性;以及对所述第一概率值和所述第二概率值求和以确定所述第一图像的第一熵值,所述第一熵值集包括所述第一熵值。
条款8:根据条款6到7中任一条款的计算装置,其还包括致使所述处理器进行以下操作的计算机可执行指令:确定所述第一熵值集的至少一部分小于阈值;确定所述至少一部分与大于时间阈值的一段时期相对应;并且其中所述数据指示较差的性能。
条款9:根据条款6到8中任一条款的计算装置,其还包括致使所述处理器进行以下操作的计算机可执行指令:确定所述多个图像的所述部分的第一图像的数据值子集;以及基于所述数据值子集来确定所述第一图像的所述第一熵值。
条款10:根据条款6到9中任一条款的计算装置,其还包括致使所述处理器进行以下操作的指令:确定与所述多个图像的第一集相关联的第一熵值集;以及确定所述第一熵值集内的与历史数据相对应的模式。
条款11:根据条款6到10中任一条款的计算装置,其还包括致使所述处理器进行以下操作的指令:确定与所述多个图像的第一集相关联的第一熵值集;确定与所述多个图像的第二集相关联的第二熵值集;以及确定所述第一熵值集和所述第二熵值集中的至少一者中的模式。
条款12:根据条款6到11中任一条款的计算装置,其还包括致使所述处理器进行以下操作的指令:确定第一时间处的第一输入;以及确定与所述第一输入相关联的模式。
条款13:根据条款6到12中任一条款的计算装置,其还包括致使所述处理器进行以下操作的指令:确定所述多个图像中的第一图像的第一熵值;确定所述多个图像中的第二图像的第二熵值;确定在所述第一熵值与所述第二熵值之间的差值;以及确定所述差值小于阈值。
条款14:一种装置,其包括用以进行以下操作的处理器:确定用于经由输出装置进行呈现的数据项序列,所述数据项序列包括第一数据项和第二数据项;针对所述第一数据项确定表示所述第一数据项内的数据值的分布的第一熵值;针对所述第二数据项确定表示所述第二数据项内的数据值的分布的第二熵值;以及基于所述第一熵值和所述第二熵值来产生数据。
条款15:根据条款14的装置,其还包括被配置为进行以下操作的所述处理器:针对所述第一数据项的第一数据值确定第一概率值,所述第一概率值指示所述第一数据值具有第一值的可能性;针对所述第一数据项的第二数据值确定第二概率值,所述第二概率值指示所述第二数据值具有第二值的可能性;并且其中所述第一熵值包括所述第一概率值和所述第二概率值的总和。
条款16:根据条款14到15中任一条款的装置,其还包括被配置为进行以下操作的所述处理器:确定所述数据项序列的具有低于阈值的熵值的子集;以及确定所述子集与大于时间阈值的一段时期相对应。
条款17:根据条款14到16中任一条款的装置,其还包括被配置为进行以下操作的所述处理器:确定所述数据项序列的一部分的熵值;确定熵值随时间的模式;以及基于熵值的所述模式来产生数据。
条款18:根据条款14到17中任一条款的装置,其还包括被配置为进行以下操作的所述处理器:确定所述多个数据项中的第一数据项的第一熵值;确定所述多个数据项中的第二数据项的第二熵值;确定在所述第一熵值与所述第二熵值之间的差值;以及确定所述差值小于阈值。
条款19:根据条款14到18中任一条款的装置,其中所述装置还包括通信接口,所述通信接口用以接收输入数据;以及还包括被配置为进行以下操作的所述处理器:使所述输入数据与所述数据项序列的数据项子集的一个或多个熵值相关联;以及确定所述模式与所述输入数据相对应。
条款20:根据条款14到19中任一条款的装置,其还包括被配置为进行以下操作的所述处理器:确定所述第一数据项的数据值子集;以及基于所述数据值子集来确定所述第一数据项的第一熵值。
在本公开中论述的过程可实施于硬件、软件或它们的组合中。在软件背景下,所描述的操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个硬件处理器执行时会执行所叙述的操作。一般来说,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。本领域普通技术人员将容易认识到,在上文在图中绘示的某些步骤或操作可被排除、组合或按照替代性次序执行。任何步骤或操作可连续地或并行地执行。此外,描述操作的次序不希望被理解为限制。
可提供实施方案作为软件程序或计算机程序产品,所述软件程序或计算机程序产品包括非暂时性计算机可读存储介质,在所述非暂时性计算机可读存储介质上存储有指令(以被压缩或未压缩的形式),所述指令可用于将计算机(或其他电子装置)编程以执行在本公开中描述的过程或方法。所述计算机可读存储介质可为电子存储介质、磁性存储介质、光学存储介质、量子存储介质等中的一者或多者。举例来说,所述计算机可读存储介质可包括(但不限于)硬盘驱动器、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁卡或光学卡、固态存储器装置或适合于存储电子指令的其他类型的物理介质。此外,还可提供实施方案作为包括暂时性机器可读信号(以被压缩或未压缩的形式)的计算机程序产品。暂时性机器可读信号(无论是使用载波调制还是未调制)的示例包括(但不限于)托管或运行计算机程序的计算机系统或机器可被配置为访问的信号,包括由一个或多个网络传递的信号。举例来说,暂时性机器可读信号可包括通过互联网传输软件。
这些程序的单独的例子可在任何数目个单独的计算机系统上执行或分布。虽然某些步骤已经被描述为由某些装置、软件程序、过程或实体执行,但不需要这样,并且本领域普通技术人员将理解多种替代性实现方式。
另外,本领域普通技术人员将容易认识到,可在多种装置、环境和情形中利用上文描述的技术。尽管已用结构特征或方法动作特有的语言描述了主题,但应理解,在所附权利要求中所限定的主题不一定限于所描述的特定特征或动作。而是,所述特定特征和动作是作为实施权利要求的示例性形式而公开的。
Claims (20)
1.一种在第一计算装置上实施的基于熵值来确定性能的方法,所述方法包括:
确定经过存储以供在显示装置上呈现的第一图像和第二图像,其中所述第一图像和所述第二图像与应用相关联;
确定指示在第一时间与所述第一图像相关联的数据值的分布的第一熵值;
确定指示在第二时间与所述第二图像相关联的数据值的分布的第二熵值;
确定第一段时期期间的第一网络吞吐量值,其中所述第一段时期至少包括所述第一时间;
确定第二段时期期间的第二网络吞吐量值,其中所述第二段时期至少包括所述第二时间;
基于所述第一熵值、第二熵值、所述第一网络吞吐量值以及所述第二网络吞吐量值来产生指示所述应用的性能的报告数据(134、342、532),所述报告数据包括对所述应用的一个或多个优化或可能的修改;以及
使用通信网络将指示所述应用的所述性能的所述报告数据(134、342、532)提供给第二计算装置。
2.如权利要求1所述的方法,所述方法还包括:
基于包括所述第一图像和所述第二图像的图像序列的熵值与阈值的比较来确定低信息内容;以及
基于确定一段时期内的所述低信息内容来确定差的性能。
3.如权利要求1所述的方法,产生指示所述应用的所述报告数据还包括:
确定所述第一熵值小于阈值;以及
确定所述第二熵值小于所述阈值。
4.如权利要求1所述的方法,产生指示所述应用的性能的所述报告数据还包括:
确定在所述第一熵值与所述第二熵值之间的差值;以及
确定所述差值小于阈值。
5.如权利要求1所述的方法,所述方法还包括:
确定经过存储以供在所述显示装置上呈现的多个图像,其中所述多个图像包括所述第一图像和所述第二图像;
确定所述多个图像的至少一部分的第一多个熵值;
确定所述第一多个熵值中的重复模式;以及
其中指示所述应用的性能的所述报告数据至少部分地基于所述重复模式。
6.一种基于熵值来确定性能的计算装置,所述计算装置包括:
通信接口(410、510);
显示装置;
存储器(418、520、616),所述存储器存储计算机可执行指令;以及
处理器(406、506、604),所述处理器用以执行所述计算机可执行指令以:
确定经过存储以供在所述显示装置上呈现的多个图像,其中所述多个图像与应用相关联并且包括第一图像和第二图像;
确定包括所述第一图像和所述第二图像的所述多个图像的至少一部分的第一熵值集,其中图像的熵值表示在各个时间所述图像的数据值的分布;
确定第一段时期期间的第一网络吞吐量值,其中所述第一段时期至少包括与所述第一图像相关联的第一时间;
确定第二段时期期间的第二网络吞吐量值,其中所述第二段时期至少包括与所述第二图像相关联的第二时间;
基于所述第一熵值集、所述第一网络吞吐量值以及所述第二网络吞吐量值来产生指示所述应用的性能的报告数据(134、342、532),所述报告数据包括对所述应用的一个或多个优化或可能的修改;以及
使用所述通信接口将指示所述应用的所述性能的所述报告数据(134、342、532)发送至第二计算装置。
7.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
从所述第一图像选择第一数据值;
确定所述第一数据值的第一概率值,其中所述第一概率值指示所述第一数据值具有第一值的可能性;
从所述第一图像选择第二数据值;
确定所述第二数据值的第二概率值,其中所述第二概率值指示所述第二数据值具有第二值的可能性;以及
对所述第一概率值和所述第二概率值求和以确定所述第一图像的第一熵值,所述第一熵值集包括所述第一熵值。
8.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定所述第一熵值集的至少一部分小于阈值;
确定所述第一熵值集的所述至少一部分与大于时间阈值的一段时期相对应;以及
其中所述报告数据指示差的性能。
9.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定所述多个图像的所述部分的所述第一图像的数据值子集;以及
基于所述数据值子集来确定所述第一图像的第一熵值。
10.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定所述第一熵值集内的与历史数据相对应的模式。
11.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定与所述多个图像的第二集相关联的第二熵值集;以及
确定所述第一熵值集和所述第二熵值集中的至少一者中的模式。
12.如权利要求6所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定第三时间处的第一输入;以及
确定与所述第一输入相关联的模式。
13.如权利要求12所述的计算装置,所述计算装置还包括致使所述处理器进行以下操作的计算机可执行指令:
确定所述多个图像中的所述第一图像的第一熵值;
确定所述多个图像中的所述第二图像的第二熵值;
确定在所述第一熵值与所述第二熵值之间的差值;以及
确定所述差值小于阈值。
14.一种基于熵值来确定性能的装置,所述装置包括:
处理器(406、506、604),所述处理器被配置以:
确定经过存储以供在输出装置上呈现的多个图像,其中所述多个图像与应用相关联并且包括第一图像和第二图像;
确定包括所述第一图像和所述第二图像的所述多个图像的至少一部分的第一熵值集,其中图像的熵值表示在各个时间所述图像的数据值的分布;
确定第一段时期期间的第一网络吞吐量值,其中所述第一段时期至少包括与所述第一图像相关联的第一时间;
确定第二段时期期间的第二网络吞吐量值,其中所述第二段时期至少包括与所述第二图像相关联的第二时间;
基于所述第一熵值集、所述第一网络吞吐量值以及所述第二网络吞吐量值来产生指示所述应用的性能的报告数据(134、342、532),所述报告数据包括对所述应用的一个或多个优化或可能的修改;以及
将指示所述应用的所述性能的所述报告数据(134、342、532)发送至第二装置。
15.如权利要求14所述的装置,所述装置还包括被配置为进行以下操作的所述处理器:
针对所述第一图像的第一数据值确定第一概率值,所述第一概率值指示所述第一数据值具有第一值的可能性;
针对所述第一图像的第二数据值确定第二概率值,所述第二概率值指示所述第二数据值具有第二值的可能性;以及
对所述第一概率值和所述第二概率值求和以确定所述第一图像的第一熵值,所述第一熵值集包括所述第一熵值。
16.如权利要求14所述的装置,所述装置还包括被配置为进行以下操作的所述处理器:
确定所述第一熵值集的子集低于阈值;以及
确定所述子集与大于时间阈值的一段时期相对应。
17.如权利要求14所述的装置,所述装置还包括被配置为进行以下操作的所述处理器:
确定所述多个图像中的图像的一部分的熵值;
确定熵值随时间的模式;以及
基于熵值的所述模式来产生所述报告数据。
18.如权利要求14所述的装置,所述装置还包括被配置为进行以下操作的所述处理器:
确定所述多个图像中的所述第一图像的第一熵值;
确定所述多个图像中的所述第二图像的第二熵值;
确定在所述第一熵值与所述第二熵值之间的差值;以及
确定所述差值小于阈值。
19.如权利要求18所述的装置,其中所述装置还包括:
通信接口,所述通信接口用以接收输入数据;以及
还包括被配置为进行以下操作的所述处理器:
使所述输入数据与所述多个图像中的图像的子集的一个或多个熵值相关联;以及
确定模式与所述输入数据相对应。
20.如权利要求14所述的装置,所述装置还包括被配置为进行以下操作的所述处理器:
确定所述第一图像的数据值子集;以及
基于所述数据值子集来确定所述第一图像的第一熵值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862641920P | 2018-03-12 | 2018-03-12 | |
US62/641,920 | 2018-03-12 | ||
US16/297,380 | 2019-03-08 | ||
US16/297,380 US11366738B2 (en) | 2018-03-12 | 2019-03-08 | System to determine performance based on entropy values |
PCT/US2019/021673 WO2019177998A1 (en) | 2018-03-12 | 2019-03-11 | System to determine performance based on entropy values |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111937006A CN111937006A (zh) | 2020-11-13 |
CN111937006B true CN111937006B (zh) | 2024-01-26 |
Family
ID=67843993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980024972.5A Active CN111937006B (zh) | 2018-03-12 | 2019-03-11 | 基于熵值来确定性能的系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11366738B2 (zh) |
EP (1) | EP3766008A4 (zh) |
JP (1) | JP2021518026A (zh) |
CN (1) | CN111937006B (zh) |
WO (1) | WO2019177998A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10949319B2 (en) * | 2018-07-25 | 2021-03-16 | EMC IP Holding Company LLC | Performance monitoring and enhancement |
US11151621B2 (en) * | 2019-06-25 | 2021-10-19 | Verizon Patent And Licensing Inc. | System and method for carrier settlement using blockchain |
CN112559314B (zh) * | 2019-09-26 | 2024-05-31 | 上海汽车集团股份有限公司 | 人机交互界面的测试方法和测试装置 |
CN111767208B (zh) * | 2020-06-02 | 2023-09-19 | 北京金堤科技有限公司 | 一种自动测试方法及装置 |
CN112001295B (zh) * | 2020-08-19 | 2023-12-08 | 北京航天飞行控制中心 | 高速转子轴系的性能评估方法及装置、存储介质及处理器 |
US20220207871A1 (en) * | 2020-12-27 | 2022-06-30 | Global Unmanned Products LLC | Digital License Tag |
CN114997840B (zh) * | 2022-07-18 | 2022-11-29 | 南京华娱数字科技有限公司 | 一种基于WebGL的CGI项目流程数据存储管理系统 |
CN117931330A (zh) * | 2022-10-25 | 2024-04-26 | 华为技术有限公司 | 显示方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101158723B1 (ko) * | 2011-05-09 | 2012-06-22 | 한밭대학교 산학협력단 | 장면 서술자 기반의 게임 장면의 고속 부호화 시스템 및 방법 |
CN102523443A (zh) * | 2010-09-30 | 2012-06-27 | 微软公司 | 用于图像压缩的熵编码器 |
US8954876B1 (en) * | 2007-10-09 | 2015-02-10 | Teradici Corporation | Method and apparatus for providing a session status indicator |
CN105095865A (zh) * | 2015-07-17 | 2015-11-25 | 广西师范大学 | 基于有向加权复杂网络的宫颈细胞识别方法及宫颈细胞识别装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916173B2 (en) | 2004-06-22 | 2011-03-29 | Canon Kabushiki Kaisha | Method for detecting and selecting good quality image frames from video |
JP2007310454A (ja) * | 2006-05-16 | 2007-11-29 | Nippon Hoso Kyokai <Nhk> | 画像評価装置および被験者集中度算出装置、並びに、画像評価プログラムおよび被験者集中度算出プログラム |
KR20090127602A (ko) * | 2008-06-09 | 2009-12-14 | 삼성전자주식회사 | 엔트로피를 이용한 영상 획득 방법 및 장치 |
US8290281B2 (en) | 2009-10-02 | 2012-10-16 | Hewlett-Packard Development Company, L.P. | Selective presentation of images |
EP2326091B1 (en) * | 2009-11-13 | 2015-08-12 | NTT DoCoMo, Inc. | Method and apparatus for synchronizing video data |
KR101590243B1 (ko) | 2011-06-29 | 2016-01-29 | 모토로라 모빌리티 엘엘씨 | 인트라 코딩 동안에 스캔 코딩 패턴을 이용하기 위한 방법 및 시스템 |
EP2761421B1 (en) | 2011-09-29 | 2016-08-10 | Hewlett-Packard Development Company, L.P. | Determining new color values of an image based on an activity map |
HUE039986T2 (hu) * | 2012-07-02 | 2019-02-28 | Samsung Electronics Co Ltd | Eljárás video entrópia dekódolására |
CN103856774B (zh) | 2014-02-28 | 2016-03-23 | 北京航科威视光电信息技术有限公司 | 一种视频监控智能检测系统及方法 |
US9507566B2 (en) * | 2014-04-01 | 2016-11-29 | Oracle International Corporation | Entropy generation for a distributed computing system |
KR20170078670A (ko) * | 2014-11-04 | 2017-07-07 | 삼성전자주식회사 | 이진 산술 부호화/복호화를 위한 확률 갱신 방법 및 이를 이용한 엔트로피 부호화/복호화 장치 |
EP3145201A1 (en) | 2015-09-17 | 2017-03-22 | Harmonic Inc. | Video processing with dynamic resolution changes |
US9693050B1 (en) | 2016-05-31 | 2017-06-27 | Fmr Llc | Automated measurement of mobile device application performance |
CN107229548B (zh) | 2017-05-23 | 2019-08-09 | 大连理工大学 | 一种基于红外图像的服务器热故障监测及诊断方法 |
-
2019
- 2019-03-08 US US16/297,380 patent/US11366738B2/en active Active
- 2019-03-11 JP JP2021500010A patent/JP2021518026A/ja active Pending
- 2019-03-11 EP EP19766999.7A patent/EP3766008A4/en not_active Withdrawn
- 2019-03-11 CN CN201980024972.5A patent/CN111937006B/zh active Active
- 2019-03-11 WO PCT/US2019/021673 patent/WO2019177998A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954876B1 (en) * | 2007-10-09 | 2015-02-10 | Teradici Corporation | Method and apparatus for providing a session status indicator |
CN102523443A (zh) * | 2010-09-30 | 2012-06-27 | 微软公司 | 用于图像压缩的熵编码器 |
KR101158723B1 (ko) * | 2011-05-09 | 2012-06-22 | 한밭대학교 산학협력단 | 장면 서술자 기반의 게임 장면의 고속 부호화 시스템 및 방법 |
CN105095865A (zh) * | 2015-07-17 | 2015-11-25 | 广西师范大学 | 基于有向加权复杂网络的宫颈细胞识别方法及宫颈细胞识别装置 |
Non-Patent Citations (2)
Title |
---|
Dysnomia, a computer program for maximum-entropy method (MEM) analysis and its performance in the MEM-based pattern fitting;Koichi Momma 等;《TECHNICAL ARTICLE》;1-10 * |
一种多分辨率图像混合编码方案;王卫 等;《通信学报》;第16卷(第2期);1-8 * |
Also Published As
Publication number | Publication date |
---|---|
US20190278689A1 (en) | 2019-09-12 |
EP3766008A1 (en) | 2021-01-20 |
EP3766008A4 (en) | 2021-12-01 |
US11366738B2 (en) | 2022-06-21 |
WO2019177998A1 (en) | 2019-09-19 |
CN111937006A (zh) | 2020-11-13 |
JP2021518026A (ja) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111937006B (zh) | 基于熵值来确定性能的系统 | |
US10210036B2 (en) | Time series metric data modeling and prediction | |
KR100948217B1 (ko) | 무선 장치상에서 프로덕트 승인을 테스트하기 위한 장치 및방법 | |
US20190149424A1 (en) | Continuous monitoring for performance evaluation of service interfaces | |
CN112887120B (zh) | 一种信息处理方法及装置 | |
US10454796B2 (en) | Cloud based system and method for managing messages regarding cable test device operation | |
CN108073506B (zh) | 测试方法和装置 | |
US11386663B1 (en) | Reference-free system for determining quality of video data | |
US9992379B2 (en) | Partial snapshots for creating generalized snapshots | |
US10178569B1 (en) | Adaptive application behavior based on assessed network characteristics | |
US20180287926A1 (en) | MCellblock for Parallel Testing of Multiple Devices | |
US10320650B2 (en) | Testing a network using a communication device | |
US9591510B2 (en) | Systems and methods to create message traffic | |
US11770458B1 (en) | Systems for exchanging data using intermediate devices | |
CN105468513A (zh) | 一种基于移动终端的测试方法、装置及系统 | |
US11650263B1 (en) | System for determining power consumption by devices | |
Mojisola et al. | Participatory analysis of cellular network quality of service | |
CN109635993A (zh) | 基于预测模型的操作行为监控方法及装置 | |
De Masi et al. | Towards accurate models for predicting smartphone applications’ QoE with data from a living lab study | |
US11144441B1 (en) | System for assisting in assessment and mitigation of data network operations | |
CN111723017A (zh) | 系统容量测试方法、装置、计算机设备及存储介质 | |
CN110505352B (zh) | 通话质量测试方法、系统、计算机设备和计算机存储介质 | |
US10455023B2 (en) | System and method for remotely accessing a computing device | |
Zhang et al. | Characterizing mobile open apis in smartphone apps | |
US9569433B1 (en) | Mobile application analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |