數(shù)據(jù)可視化是用于在可視化(例如,圖表、信息圖、地圖、計(jì)量圖(gauge)等)中圖形表示數(shù)據(jù)的過(guò)程。大的數(shù)據(jù)集的可視化要求顯著的系統(tǒng)資源(包括處理器時(shí)間和存儲(chǔ)器)來(lái)制備或存儲(chǔ)所述可視化,這可能引起系統(tǒng)卡死(lockup)或慢下來(lái)。實(shí)施例將是關(guān)于這些和其它考量而做出的。技術(shù)實(shí)現(xiàn)要素:提供該“
發(fā)明內(nèi)容”以引入在后續(xù)“具體實(shí)施方式”部分中進(jìn)一步描述的簡(jiǎn)化形式的概念選集。該“
發(fā)明內(nèi)容”并不意圖識(shí)別所要求保護(hù)主題的所有特征,且也不打算限制所要求保護(hù)主題的范圍。本公開(kāi)的方面通過(guò)從數(shù)據(jù)可視化篩除數(shù)據(jù)以減少存儲(chǔ)器需求來(lái)提供性能優(yōu)化。根據(jù)一個(gè)方面,在布局時(shí)間期間篩除數(shù)據(jù),以智能地跳過(guò)不會(huì)實(shí)質(zhì)影響可視化的呈現(xiàn)的數(shù)據(jù);在保存呈現(xiàn)的同時(shí)減少?gòu)?fù)雜度。根據(jù)另一方面,篩除在布局期間產(chǎn)生的幾何結(jié)構(gòu),以使得幾何結(jié)構(gòu)向量被減少或被簡(jiǎn)化/修剪(trimmed)以減少布局后處理(例如,渲染)。根據(jù)另一方面,每個(gè)序列布局使用私有優(yōu)化數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)抽象形式的幾何結(jié)構(gòu)用于減少存儲(chǔ)器使用。本公開(kāi)的各方面還提供了通過(guò)將可視化克隆并在后臺(tái)線程上執(zhí)行布局而將布局的成本委托(defer)給后臺(tái)線程,然后將計(jì)算出的布局接近持續(xù)地(near-constant)轉(zhuǎn)移到前臺(tái)線程。例子可以實(shí)現(xiàn)為計(jì)算機(jī)過(guò)程、計(jì)算系統(tǒng)或作為制品(例如,計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì))。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀的且編碼有用于執(zhí)行計(jì)算機(jī)過(guò)程的計(jì)算機(jī)程序指令的計(jì)算機(jī)存儲(chǔ)介質(zhì)。在附圖和下文描述中闡述了一個(gè)或多個(gè)方面的細(xì)節(jié)。根據(jù)閱讀后續(xù)具體實(shí)施方式和查看相關(guān)聯(lián)附圖,其它特征和優(yōu)點(diǎn)將變得明顯。應(yīng)該理解的是,下文的具體實(shí)施方式只是說(shuō)明性的,而非對(duì)本公開(kāi)進(jìn)行限制。附圖說(shuō)明附圖被并入本公開(kāi)并構(gòu)成本公開(kāi)的一部分,示出了本公開(kāi)的各個(gè)方面。在附圖中:圖1示出了數(shù)據(jù)在單個(gè)方向上流動(dòng)的流水線架構(gòu);圖2示出了用于優(yōu)化對(duì)可視化進(jìn)行創(chuàng)建和布局的性能的系統(tǒng)的框圖;圖3是示出在用于提供數(shù)據(jù)可視化平臺(tái)性能優(yōu)化的方法中涉及的一般階段的流程圖;圖4是示出計(jì)算設(shè)備的示例性物理部件的框圖;圖5A和5B是移動(dòng)計(jì)算設(shè)備的框圖;以及圖6是分布式計(jì)算系統(tǒng)的框圖。具體實(shí)施方式后續(xù)具體實(shí)施方式涉及附圖。在圖中以及后續(xù)描述中盡可能地使用相同的附圖標(biāo)記來(lái)指代相同或類似的元件。雖然描述了本公開(kāi)的各方面,但是也可以進(jìn)行修改、適配和其它實(shí)現(xiàn)方式。例如,可以對(duì)附圖中示出的元件進(jìn)行替換、添加或修改,并且可以通過(guò)對(duì)公開(kāi)方法進(jìn)行替換、重排序或添加階段來(lái)修改本文描述的方法。因此,后續(xù)具體實(shí)施方式并不限于本公開(kāi),相反地,本公開(kāi)的正確范圍是通過(guò)隨附權(quán)利要求來(lái)定義的。例子可以采用硬件實(shí)現(xiàn)方式、完全軟件實(shí)現(xiàn)方式、或者組合軟件和硬件方面的實(shí)現(xiàn)方式的形式。因此,后續(xù)具體實(shí)施方式并不應(yīng)被當(dāng)作是限制意義的。如在本領(lǐng)域所公知的,存儲(chǔ)器通常是應(yīng)用性能的瓶頸。各方面允許通過(guò)對(duì)所使用的存儲(chǔ)器的量進(jìn)行限界并通過(guò)將數(shù)據(jù)存儲(chǔ)于單個(gè)連續(xù)分配(single,contiguousallocation)中而優(yōu)化應(yīng)用性能。如下所述,當(dāng)通過(guò)布局引擎計(jì)算幾何結(jié)構(gòu)時(shí),可以將幾何結(jié)構(gòu)緩存在限界的序列對(duì)象內(nèi)。各方面提供了基于每布局的數(shù)據(jù)篩除和私有化(privatization),用于存儲(chǔ)抽象幾何結(jié)構(gòu)來(lái)優(yōu)化性能。本公開(kāi)的例子致力于經(jīng)由從數(shù)據(jù)可視化中將數(shù)據(jù)篩除來(lái)提供在數(shù)據(jù)可視化平臺(tái)內(nèi)的性能優(yōu)化。根據(jù)一方面,所述架構(gòu)使得能夠經(jīng)由分開(kāi)的階段(separatestages)的單向鏈建立數(shù)據(jù)可視化(例如,圖表、信息圖、地圖、計(jì)量圖等),每個(gè)階段具有簡(jiǎn)單的輸入接口和輸出接口。圖1示出了其中數(shù)據(jù)在單個(gè)方向上流動(dòng)的流水線架構(gòu)100。如圖1所示,數(shù)據(jù)從原始數(shù)據(jù)105流動(dòng)到抽象幾何結(jié)構(gòu)115、到序列對(duì)象125、到可視化135??梢栽诹魉€的每個(gè)階段(stage)處對(duì)數(shù)據(jù)進(jìn)行私有化和篩除,這減少了用于對(duì)可視化135進(jìn)行布局和創(chuàng)建的存儲(chǔ)器。因此,更有效率地執(zhí)行可視化生成。原始數(shù)據(jù)105包括將在可視化135中標(biāo)繪(plot)的數(shù)據(jù)點(diǎn)集合。在各個(gè)方面,通過(guò)行(row)、向量、陣列(array)、表格(table)、矩陣等組織原始數(shù)據(jù)105。在一個(gè)例子中,從Redmond,Washington的MICROSOFTCORPORATION提供的電子表格軟件的一組單元(cell)中取出原始數(shù)據(jù)105??梢暬?35例如包括圖表、信息圖、地圖、計(jì)量圖等,其用于圖形顯示原始數(shù)據(jù)105。抽象幾何結(jié)構(gòu)115包括基元(例如,線、Bezier曲線、Bezier曲面等)的有限集,其可以被直接傳遞給適當(dāng)?shù)匿秩緫?yīng)用程序接口(API)或傳遞給額外的模塊或引擎用于進(jìn)一步的處理。根據(jù)這些基元(primitive),可以近似任意幾何結(jié)構(gòu)。根據(jù)各方面,將抽象幾何結(jié)構(gòu)115以被裁剪以適應(yīng)布局的每種類型的壓縮形式存儲(chǔ)為序列對(duì)象125。在若干方面,將抽象幾何結(jié)構(gòu)115組裝成為序列對(duì)象125,其存儲(chǔ)于在存儲(chǔ)器中作為連續(xù)塊的單個(gè)分配(allocation)中,這提高了取回的速度。根據(jù)各方面,序列對(duì)象125是私有化存儲(chǔ)的形式,其可操作以提供組成該序列對(duì)象的所有的抽象幾何結(jié)構(gòu)115,而無(wú)需被針對(duì)個(gè)體抽象幾何結(jié)構(gòu)115而詢問(wèn);在一個(gè)同步操作中提供全部序列對(duì)象125來(lái)產(chǎn)生可視化135。根據(jù)各方面,緩存在序列對(duì)象125中的抽象幾何結(jié)構(gòu)115的量被可視化135的顯示器尺寸限界,并且被計(jì)算為具有固定的存儲(chǔ)器成本。當(dāng)序列對(duì)象125的尺寸被限界時(shí),一些方面使用多個(gè)序列對(duì)象125來(lái)創(chuàng)建可視化135的部分。序列對(duì)象125的一個(gè)例子是由抽象幾何結(jié)構(gòu)115組成的圓圈(例如,四個(gè)三次Bezier曲線,每個(gè)組成圓圈的四分之一),其可以作為圓圈的半徑的函數(shù)在可視化135中呈現(xiàn)原始數(shù)據(jù)105。根據(jù)各方面,抽象幾何結(jié)構(gòu)115以各種形式存儲(chǔ)。根據(jù)一個(gè)方面,抽象幾何結(jié)構(gòu)115存儲(chǔ)為主要和實(shí)例壓縮形式(例如,三角形、圓圈、菱形、線條、扇形等的列表)。主要和實(shí)例壓縮形式(masterandinstancescompactform)使能了具有重復(fù)形式的幾何結(jié)構(gòu)的可視化類型(例如,散點(diǎn)序列,其中每個(gè)數(shù)據(jù)點(diǎn)都是菱形),來(lái)通過(guò)壓縮待提供的序列對(duì)象125的體積而改善性能。各方面使能可視化135使用主要/實(shí)例形式中的幾何結(jié)構(gòu),由此序列對(duì)象125的主要幾何結(jié)構(gòu)(例如,菱形)被一次性地以全部細(xì)節(jié)來(lái)描述,并且實(shí)例參考該主要幾何結(jié)構(gòu)并被描述為在可視化135中圍繞其構(gòu)造該主要幾何結(jié)構(gòu)的單個(gè)點(diǎn)(例如,菱形的中心)。根據(jù)另一方面,抽象幾何結(jié)構(gòu)115可以存儲(chǔ)為路徑幾何結(jié)構(gòu)(例如,面積圖表、表面圖表、雷達(dá)圖表、趨勢(shì)線等)。根據(jù)另一方面,抽象幾何結(jié)構(gòu)115可以存儲(chǔ)為公式。例如,在繪制供需曲線的商業(yè)圖表中,描述所述曲線的函數(shù)被存儲(chǔ)。因此,在渲染期間可以合成抽象幾何結(jié)構(gòu)115。例如,在簡(jiǎn)單布局(其計(jì)算不昂貴且數(shù)據(jù)是本地的)的情況下(例如,線條圖表、柱狀圖等),可以直接根據(jù)原始數(shù)據(jù)105合成抽象幾何結(jié)構(gòu)115。圖2示出了用于優(yōu)化對(duì)可視化135進(jìn)行創(chuàng)建和布局的性能的系統(tǒng)200的框圖。在系統(tǒng)200中,在對(duì)可視化135進(jìn)行創(chuàng)建的布局階段(layoutphase)期間,將數(shù)據(jù)從客戶端240傳遞給布局引擎210并進(jìn)行處理,并且將抽象幾何結(jié)構(gòu)115傳遞回客戶端240來(lái)提供可視化135。從客戶端240接收到的數(shù)據(jù)包括原始數(shù)據(jù)105和表面描述235,其提供關(guān)于以下的上下文:客戶端240,以及原始數(shù)據(jù)105將在其內(nèi)被可視化的坐標(biāo)空間。根據(jù)一個(gè)方面,將數(shù)據(jù)傳遞給序列布局模塊250,以根據(jù)表面描述235創(chuàng)建抽象幾何結(jié)構(gòu)115,從而在可視化135中圖形地呈現(xiàn)原始數(shù)據(jù)105,其轉(zhuǎn)而被傳遞回布局引擎210以在將抽象幾何結(jié)構(gòu)115被發(fā)送給客戶端240之前篩除抽象幾何結(jié)構(gòu)115。系統(tǒng)200可操作以在任一時(shí)間點(diǎn)(atanypoint)對(duì)數(shù)據(jù)或幾何結(jié)構(gòu)進(jìn)行私有化或篩除。在對(duì)可視化135進(jìn)行創(chuàng)建的布局階段期間,將從客戶端240接收到的原始數(shù)據(jù)105轉(zhuǎn)換為抽象幾何結(jié)構(gòu)115。根據(jù)一方面,當(dāng)布局引擎210正在構(gòu)造布局時(shí),數(shù)據(jù)篩除器220使用定制篩除邏輯來(lái)執(zhí)行原始數(shù)據(jù)105的布局特有的篩除。如定制篩除邏輯所確定出的,即使被移除也不會(huì)實(shí)質(zhì)地影響可視化135的原始數(shù)據(jù)105被篩除;其在計(jì)算幾何結(jié)構(gòu)時(shí)可以被忽略或跳過(guò)。根據(jù)一方面,被篩除的數(shù)據(jù)由布局引擎210或客戶端240留存,但是不被發(fā)送到序列布局模塊250也不用于后續(xù)操作。數(shù)據(jù)篩除器220使得布局引擎210能夠構(gòu)造仍傳達(dá)原始數(shù)據(jù)105的相同解釋但使用更少數(shù)據(jù)的可視化135。根據(jù)各方面,當(dāng)在可視化135中的圖形表示實(shí)質(zhì)上受到其它原始數(shù)據(jù)105的表示的影響時(shí),篩除原始數(shù)據(jù)105。例如,在列序列的可視化135中,組成原始數(shù)據(jù)105的數(shù)據(jù)序列被可視化為垂直列,從原始數(shù)據(jù)105篩除與其它數(shù)據(jù)序列的垂直列在可視化135中重疊的數(shù)據(jù)序列。在另一例子中,在氣泡序列的可視化135中,從氣泡圖標(biāo)內(nèi)高密度區(qū)域篩除原始數(shù)據(jù)105(表示為圓圈)。根據(jù)各方面,可視化的每個(gè)類型包括適于其布局的定制篩除邏輯。在這些方面,基于可視化類型(例如,柱狀圖、散點(diǎn)圖、餅圖等)選擇特定的篩除邏輯,其選擇性地跳過(guò)/忽視將會(huì)產(chǎn)生對(duì)其它抽象幾何結(jié)構(gòu)115或序列對(duì)象125的顯示實(shí)質(zhì)上地造成影響的抽象幾何結(jié)構(gòu)115或序列對(duì)象125的原始數(shù)據(jù)105。根據(jù)各方面,在篩除中不刪除原始數(shù)據(jù)105;其只是出于創(chuàng)建可視化135的目的而被忽略。在各個(gè)方面,將未被篩除的原始數(shù)據(jù)105轉(zhuǎn)換為可以用于合成幾何結(jié)構(gòu)的適當(dāng)基元用于流水線架構(gòu)100中的下游過(guò)程(例如,經(jīng)由可視化135進(jìn)行渲染或與之交互)。通過(guò)篩除原始數(shù)據(jù)105,為在流水線架構(gòu)100中后續(xù)發(fā)生的過(guò)程提供減少的待操縱的數(shù)據(jù)量,同時(shí)提供等效的對(duì)數(shù)據(jù)的解釋。根據(jù)另一方面,當(dāng)在布局階段期間產(chǎn)生抽象幾何結(jié)構(gòu)115時(shí),幾何結(jié)構(gòu)篩除器230篩除抽象幾何結(jié)構(gòu)115進(jìn)一步減少對(duì)于客戶端240的當(dāng)前輸出分辨率(或者執(zhí)行客戶端240的設(shè)備)而言太復(fù)雜的抽象幾何結(jié)構(gòu)115和序列對(duì)象125的渲染和光柵化成本。在各個(gè)方面,在可視化的抽象幾何結(jié)構(gòu)115落到可視化135內(nèi)的尺寸閾值以下時(shí),幾何結(jié)構(gòu)篩除器230執(zhí)行幾何結(jié)構(gòu)篩除邏輯來(lái)撤除抽象幾何結(jié)構(gòu)115或?qū)⑵滢D(zhuǎn)換為更簡(jiǎn)單的形式。根據(jù)一方面,幾何結(jié)構(gòu)篩除器230可操作以在篩除不會(huì)實(shí)質(zhì)影響所顯示的可視化135時(shí)撤除抽象幾何結(jié)構(gòu)115。例如,幾何結(jié)構(gòu)篩除器230針對(duì)空的序列對(duì)象125以及在可視化135中以零長(zhǎng)度渲染的線段而撤除抽象幾何結(jié)構(gòu)115,修剪/轉(zhuǎn)換具有零高度/寬度和短Bezier曲線(例如,小于4個(gè)像素)的三角形為線條,組合共線部分等。根據(jù)各方面,幾何結(jié)構(gòu)篩除器230減少顯示一組抽象幾何結(jié)構(gòu)115所需的基元數(shù)量,但不實(shí)質(zhì)影響根據(jù)表面描述235的可視化135。通過(guò)呈現(xiàn)由更少或更簡(jiǎn)單的基元(例如,取代Bezier曲線的線條(line))組成的抽象幾何結(jié)構(gòu)115,幾何結(jié)構(gòu)篩除減少在流水線架構(gòu)100中后續(xù)階段所需的處理量。各方面規(guī)定針對(duì)可視化135生成的表面描述235(例如,可視化類型、可視化尺寸、客戶端分辨率/dpi等),以提供篩除閾值所基于的客戶端上下文。例如,1920x1080像素顯示分辨率的客戶端240具有比800x600像素顯示分辨率的客戶端240更大的分辨率,后者不能顯示與具有較大分辨率的客戶端240同樣多細(xì)節(jié)的相同可視化135。因此,在具有較大分辨率的客戶端240上顯示的矩形的幾何結(jié)構(gòu)可以被篩除以在具有較小分辨率的客戶端240上被顯示為線條(或根本不顯示)。表面描述235被數(shù)據(jù)篩除器220使用來(lái)確定抽象幾何結(jié)構(gòu)115何時(shí)將實(shí)質(zhì)影響彼此(并因此篩除相關(guān)聯(lián)的原始數(shù)據(jù)105),并且表面描述235被幾何結(jié)構(gòu)篩除器230使用來(lái)確定何時(shí)能夠撤除或簡(jiǎn)化/修剪抽象幾何結(jié)構(gòu)115而不實(shí)質(zhì)影響可視化135的顯示。根據(jù)各方面,在布局階段期間處理全部數(shù)據(jù)集,以產(chǎn)生正確的且減少的抽象幾何結(jié)構(gòu)115的集合,這可能花費(fèi)較長(zhǎng)時(shí)間并可能引入在客戶端240的用戶界面(UI)中的簡(jiǎn)短的掛起和無(wú)響應(yīng)時(shí)段。例如,為了基于百萬(wàn)行原始數(shù)據(jù)105創(chuàng)建可視化135,“遍歷”(即,逐行處理)百萬(wàn)行原始數(shù)據(jù)105來(lái)執(zhí)行數(shù)據(jù)篩除過(guò)程,并類似地處理得到的抽象幾何結(jié)構(gòu)115以執(zhí)行幾何結(jié)構(gòu)篩除。各方面規(guī)定通過(guò)允許客戶端240克隆可視化135并將布局階段推送到后臺(tái)線程而將布局階段的成本委托(defer)給后臺(tái)線程來(lái)改善響應(yīng)性。如本領(lǐng)域已知的,可以接近持續(xù)地(例如,小于0.5ms)實(shí)現(xiàn)克隆。后臺(tái)布局過(guò)程允許客戶端240仍響應(yīng)于用戶輸入,同時(shí)在后臺(tái)計(jì)算可視化135的布局。各方面允許前臺(tái)可視化135保持空白,顯示先前的布局,為后臺(tái)線程顯示進(jìn)度條(或正在進(jìn)行的布局過(guò)程的類似表示),或其組合。各方面還允許客戶端240中止后臺(tái)線程,例如,當(dāng)用戶手動(dòng)中止時(shí)或當(dāng)進(jìn)行第二請(qǐng)求時(shí)。根據(jù)各方面,一旦后臺(tái)布局階段完成,就可以經(jīng)由涉及對(duì)在前臺(tái)中的可視化135進(jìn)行替代或更新的指針交換的API,接近持續(xù)地將計(jì)算出的布局轉(zhuǎn)移回前臺(tái)線程。圖3是示出在用于提供數(shù)據(jù)可視化平臺(tái)性能優(yōu)化的方法300中涉及的一般階段的流程圖。方法300開(kāi)始于開(kāi)始(START)301并進(jìn)行到操作310,在此接收將在可視化135中使用的數(shù)據(jù)。根據(jù)各方面,接收到的數(shù)據(jù)包括原始數(shù)據(jù)105和用于可視化135的表面描述235。方法300然后進(jìn)行到操作320,在此將布局推送到后臺(tái)線程。將布局推送到后臺(tái)線程以防止可能在處理期間在客戶端240的UI中引入掛起或無(wú)響應(yīng)時(shí)段。方法300然后進(jìn)行到?jīng)Q策操作330。在決策操作330處,基于坐標(biāo)系要求(例如,笛卡爾,值/值(例如,散點(diǎn)圖表);笛卡爾,種類/值(例如,柱狀圖表);徑向,種類/值(例如,餅狀圖表、雷達(dá)圖表)等)來(lái)確定是否篩除原始數(shù)據(jù)105,并且顯示經(jīng)由表面描述235取回的可視化135的維度。根據(jù)表面描述235和分析原始數(shù)據(jù)105,可以確定兩個(gè)數(shù)據(jù)序列或數(shù)據(jù)點(diǎn)的幾何結(jié)構(gòu)是否在顯示表面上重疊。例如,當(dāng)在監(jiān)視器上創(chuàng)建每英寸上百像素的五英寸寬的柱狀圖表(即,500個(gè)像素的圖表)時(shí),可以確定在示例性圖表中能夠以至多500個(gè)單像素寬的列繪制可視化。因此,顯示多于原始數(shù)據(jù)105的500個(gè)數(shù)據(jù)序列將使得相關(guān)聯(lián)的抽象幾何結(jié)構(gòu)115實(shí)質(zhì)地影響彼此(例如,重疊),并且可以確定將篩除原始數(shù)據(jù)105。當(dāng)確定篩除原始數(shù)據(jù)105時(shí),方法300進(jìn)行到操作335,在此根據(jù)各方面,將依據(jù)布局特有的定制篩除邏輯篩除原始數(shù)據(jù)105(例如,對(duì)于散點(diǎn)序列,撤除重疊標(biāo)記),然后方法300進(jìn)行到操作340。根據(jù)各個(gè)方面,可以依據(jù)若干篩除方案篩除原始數(shù)據(jù)105,所述篩除方案可以是根據(jù)各個(gè)方面基于可視化類型而用戶定義的或由系統(tǒng)設(shè)置的,包括:通過(guò)順序截?cái)?例如,在到達(dá)閾值之后忽略數(shù)據(jù)序列),交織截?cái)?例如,篩除每隔一個(gè)數(shù)據(jù)序列),合并(例如,在諸如餅狀圖的適當(dāng)可視化中組合小的數(shù)據(jù)序列為“混雜”數(shù)據(jù)序列),異常值篩除,等等。當(dāng)確定不篩除原始數(shù)據(jù)105時(shí),或當(dāng)篩除完成時(shí),方法300進(jìn)行到操作340。在操作340處計(jì)算和生成抽象幾何結(jié)構(gòu)115以在可視化135中表示原始數(shù)據(jù)105。根據(jù)一方面,針對(duì)組成原始數(shù)據(jù)105的每個(gè)數(shù)據(jù)序列單獨(dú)計(jì)算并生成抽象幾何結(jié)構(gòu)115。根據(jù)一方面,抽象幾何結(jié)構(gòu)由基元(例如,線條、Bezier曲線、Bezier曲面等)組成。方法300隨后進(jìn)行到?jīng)Q策操作350,在此基于客戶端240的顯示特性和經(jīng)由表面描述235取回的可視化135來(lái)確定是否篩除抽象幾何結(jié)構(gòu)115。繼續(xù)關(guān)于決策操作330給出的例子,如果500列將被渲染為具有一個(gè)像素寬度的矩形,則可以做出將其幾何結(jié)構(gòu)(經(jīng)由修剪)從矩形篩除為線條的決定,而不實(shí)質(zhì)影響可視化135;可視化135對(duì)于用戶而言看起來(lái)大體是一樣的。當(dāng)確定篩除抽象幾何結(jié)構(gòu)115時(shí),方法300進(jìn)行到操作355,在此根據(jù)幾何結(jié)構(gòu)篩除邏輯篩除抽象幾何結(jié)構(gòu)115。在各方面,篩除組成抽象幾何結(jié)構(gòu)115的基元包括但不限于:設(shè)置主要和實(shí)例格式,從而僅將幾何結(jié)構(gòu)傳遞給客戶端240一次;修剪抽象幾何結(jié)構(gòu)的基元(例如,可以將一個(gè)像素寬度/高度的矩形表示為線條,可以將短曲線表示為線條,等等)來(lái)減少客戶端240所需的處理量;撤除可忽略的幾何結(jié)構(gòu),例如對(duì)應(yīng)于空的、零值或太小而不能準(zhǔn)確顯示在可視化135上的數(shù)據(jù)序列的抽象幾何結(jié)構(gòu)115(例如,餅狀圖中的薄片可能太薄而不能準(zhǔn)確顯示為圖表中的線條),從而減少客戶端240所需的渲染時(shí)間;將共線部分的基元組合為客戶端的成組過(guò)程;等等。根據(jù)各方面,因?yàn)槌橄髱缀谓Y(jié)構(gòu)115是針對(duì)每個(gè)數(shù)據(jù)序列單獨(dú)生成,所以其也被單獨(dú)處理和篩除,這允許方法300在于操作340生成所有的抽象幾何結(jié)構(gòu)115之前就開(kāi)始幾何結(jié)構(gòu)篩除。當(dāng)確定不篩除抽象幾何結(jié)構(gòu)時(shí),或者當(dāng)完成篩除時(shí),方法進(jìn)行到操作360,在此抽象幾何結(jié)構(gòu)115以每序列布局為基礎(chǔ),例如經(jīng)由序列對(duì)象125私有地存儲(chǔ)。在各個(gè)方面,序列對(duì)象125存儲(chǔ)于作為存儲(chǔ)器中連續(xù)塊的單個(gè)分配內(nèi),這改善了取回的速度。在各方面,通過(guò)可視化135的顯示約束(如表面描述235所表示的)對(duì)序列對(duì)象125進(jìn)行限界,并且序列對(duì)象125被計(jì)算為具有存儲(chǔ)器中的固定成本,從而可以接近持續(xù)地(例如,小于0.5ms)從存儲(chǔ)器取回。在一些方面,每個(gè)序列對(duì)象125對(duì)應(yīng)于數(shù)據(jù)序列(或在其它方面,對(duì)應(yīng)于組合的數(shù)據(jù)序列),并且可以單獨(dú)存儲(chǔ),這允許方法300在根據(jù)操作355篩除了所有抽象幾何結(jié)構(gòu)115之前就開(kāi)始存儲(chǔ)。根據(jù)一方面,若干序列對(duì)象125存儲(chǔ)于存儲(chǔ)器中相鄰的連續(xù)塊中,這進(jìn)一步提高了在操作380中取回的速度。方法300隨后進(jìn)行到操作370。在操作370處,將計(jì)算出的布局從后臺(tái)線程轉(zhuǎn)移回前臺(tái)線程。然后,方法300進(jìn)行到操作380,在此將抽象幾何結(jié)構(gòu)115提供給客戶端240。根據(jù)各方面,抽象幾何結(jié)構(gòu)115作為序列對(duì)象125被流式傳送到客戶端240。在客戶端240接收到抽象幾何結(jié)構(gòu)115之后,可以提供可視化135,并且方法在結(jié)束(END)399處結(jié)束。圖4-6及其相關(guān)描述提供了可以實(shí)踐本公開(kāi)的例子的操作環(huán)境。然而,參考圖4-6示出和討論的設(shè)備和系統(tǒng)是出于示例和說(shuō)明的目的,并非要對(duì)大量可用于實(shí)踐本文描述的本公開(kāi)的各方面的計(jì)算設(shè)備配置進(jìn)行限制。圖4是示出可以實(shí)踐本公開(kāi)的例子的計(jì)算設(shè)備400的物理部件(即,硬件)的框圖。下文描述的計(jì)算設(shè)備部件可以適于上述客戶端設(shè)備。在基本配置中,計(jì)算設(shè)備400可以包括至少一個(gè)處理單元402和系統(tǒng)存儲(chǔ)器404。取決于計(jì)算設(shè)備的配置和類型,系統(tǒng)存儲(chǔ)器404可以包括但不限于:易失性存儲(chǔ)設(shè)備(例如,隨機(jī)存取存儲(chǔ)器)、非易失性存儲(chǔ)設(shè)備(例如,只讀存儲(chǔ)器)、閃存、或這些存儲(chǔ)器的任意組合。系統(tǒng)存儲(chǔ)器404可以包括操作系統(tǒng)405和適于運(yùn)行軟件應(yīng)用450(例如,布局引擎210)的一個(gè)或多個(gè)編程模塊406。根據(jù)一方面,系統(tǒng)存儲(chǔ)器404可以包括客戶端240。操作系統(tǒng)405可以適于例如控制計(jì)算設(shè)備400的操作。此外,本發(fā)明的各方面可以結(jié)合圖形庫(kù)、其它操作系統(tǒng)或任意其它應(yīng)用程序來(lái)實(shí)踐,且不限于任意特定的應(yīng)用或系統(tǒng)。該基本配置在圖4中通過(guò)虛線408內(nèi)的那些部件示出。計(jì)算設(shè)備400可以具有額外的特征或功能。例如,計(jì)算設(shè)備400還可以包括額外的數(shù)據(jù)存儲(chǔ)設(shè)備(可移除的或不可移除的),例如,磁盤(pán)、光盤(pán)或磁帶。這種額外的存儲(chǔ)設(shè)備在圖4中通過(guò)可移除存儲(chǔ)設(shè)備409和不可移除存儲(chǔ)設(shè)備410示出。如上所述,多個(gè)程序模塊和數(shù)據(jù)文件可以存儲(chǔ)于系統(tǒng)存儲(chǔ)器404中。當(dāng)在處理單元402上執(zhí)行時(shí),程序模塊406(例如,客戶端240、布局引擎210)可以執(zhí)行包括但不限于在圖3中示出的方法300的一個(gè)或多個(gè)階段的過(guò)程。根據(jù)本公開(kāi)的例子可以使用其它程序模塊,并且可以包括其它應(yīng)用450,例如,電子郵件和聯(lián)系人應(yīng)用、文字處理應(yīng)用、電子表單應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、幻燈片演示應(yīng)用、會(huì)話或計(jì)算機(jī)輔助應(yīng)用程序等。此外,本公開(kāi)的例子可以實(shí)現(xiàn)于電路中,包括分立電子元件、包含邏輯門(mén)的封裝或集成電子芯片、使用微處理器的電路、或在包含電子元件或微處理器的單個(gè)芯片上。例如,可以經(jīng)由片上系統(tǒng)(SOC)來(lái)實(shí)踐本公開(kāi)的例子,其中圖4中示出的每個(gè)或多個(gè)部件可以集成到單個(gè)集成電路上。這種SOC設(shè)備可以包括一個(gè)或多個(gè)處理單元、圖形單元、通信單元、系統(tǒng)虛擬化單元以及各種應(yīng)用功能,其所有都集成(或“燒制”)到芯片襯底上作為單個(gè)集成電路。當(dāng)經(jīng)由SOC操作時(shí),可以經(jīng)由在單個(gè)集成電路(芯片)上與計(jì)算設(shè)備400的其它部件集成的專用邏輯來(lái)操作本文描述的功能。還可以利用能夠執(zhí)行邏輯運(yùn)算(例如,AND、OR和NOT)的其它技術(shù)來(lái)實(shí)踐本公開(kāi)的例子,所述技術(shù)包括但不限于機(jī)械、光學(xué)、流體和量子技術(shù)。另外,本公開(kāi)的各方面可以在通用計(jì)算機(jī)內(nèi)或在任意其它電路或系統(tǒng)中實(shí)踐。計(jì)算設(shè)備400還可以具有一個(gè)或多個(gè)輸入設(shè)備412,例如,鍵盤(pán)、鼠標(biāo)、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等。還可以包括輸出設(shè)備414,例如顯示器、揚(yáng)聲器、打印機(jī)等。前述設(shè)備是示例,并且可以使用其它設(shè)備。計(jì)算設(shè)備400可以包括一個(gè)或多個(gè)通信連接416,其允許與其它計(jì)算設(shè)備418進(jìn)行通信。適當(dāng)?shù)耐ㄐ胚B接416的例子包括但不限于:RF發(fā)射機(jī)、接收機(jī)或收發(fā)機(jī)電路;通用串行總線(USB)、并行或串行端口。如本文使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以包括易失性和非易失性的、可移除和不可移除的介質(zhì),其以用于存儲(chǔ)信息(例如,計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)或程序模塊)的任意方法或技術(shù)實(shí)現(xiàn)。系統(tǒng)存儲(chǔ)器404、可移除存儲(chǔ)設(shè)備409和不可移除存儲(chǔ)設(shè)備410都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的例子(即,存儲(chǔ)器存儲(chǔ)設(shè)備)。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以包括RAM、ROM、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(pán)(DVD)或其它光盤(pán)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或能夠用于存儲(chǔ)信息并能夠由計(jì)算設(shè)備400存取的任意其它制品。任意這種計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是計(jì)算設(shè)備400的一部分。計(jì)算機(jī)存儲(chǔ)介質(zhì)不包括載波或其它傳播數(shù)據(jù)信號(hào)。通信介質(zhì)可以由計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或已調(diào)數(shù)據(jù)信號(hào)(例如載波或其它傳輸機(jī)制)中的其它數(shù)據(jù)具體體現(xiàn),并包括任意信息輸送介質(zhì)。術(shù)語(yǔ)“調(diào)制數(shù)據(jù)信號(hào)”可以描述具有一個(gè)或多個(gè)特征集或以編碼信號(hào)中的信息的方式變化的信號(hào)。通過(guò)例子而非限制,通信介質(zhì)可以包括有線介質(zhì),例如,有線網(wǎng)絡(luò)或直連線連接;以及無(wú)線介質(zhì),例如,聲、射頻(RF)、紅外和其它無(wú)線介質(zhì)。圖5A和5B示出了移動(dòng)計(jì)算設(shè)備500,例如,移動(dòng)電話、智能手機(jī)、平板個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)等,通過(guò)其實(shí)踐本文公開(kāi)的各方面。參考圖5A,示出了用于實(shí)現(xiàn)各方面的移動(dòng)計(jì)算設(shè)備500的例子。在基本配置中,移動(dòng)計(jì)算設(shè)備500是具有輸入元件和輸出元件的手持計(jì)算機(jī)。移動(dòng)計(jì)算設(shè)備500通常包括顯示器505和一個(gè)或多個(gè)輸入按鈕510,其允許用戶將信息輸入到移動(dòng)計(jì)算設(shè)備500中。移動(dòng)計(jì)算設(shè)備500的顯示器505還可以用作輸入設(shè)備(例如,觸摸屏顯示器)。如果可選的側(cè)輸入元件515被包含,則允許進(jìn)一步的用戶輸入。側(cè)輸入元件515可以是旋轉(zhuǎn)開(kāi)關(guān)、按鈕或任意其它類型的手工輸入元件。在替代例子中,移動(dòng)計(jì)算設(shè)備500可以并入更多或更少的輸入元件。例如,顯示器505在一些例子中可能不是觸摸屏。在替代例子中,移動(dòng)計(jì)算設(shè)備500是便攜式電話系統(tǒng),例如蜂窩電話。移動(dòng)計(jì)算設(shè)備500還可以包括可選鍵區(qū)535??蛇x鍵區(qū)535可以是物理鍵區(qū)或在觸摸屏顯示器上生成的“軟”鍵區(qū)。在各個(gè)方面,輸出元件包括顯示器505用于顯示圖形用戶界面(GUI)、視覺(jué)指示器520(例如,發(fā)光二極管)或音頻換能器525(例如,揚(yáng)聲器)。在一些例子中,移動(dòng)計(jì)算設(shè)備500并入振動(dòng)換能器,用于為用戶提供觸覺(jué)反饋。在又一例子中,移動(dòng)計(jì)算設(shè)備500并入外圍設(shè)備端口540,例如,音頻輸入(如,麥克風(fēng)插口)、音頻輸出(如,耳機(jī)插口)和視頻輸出(如,HDMI端口)用于將信號(hào)發(fā)送到外部設(shè)備或從外部設(shè)備接收信號(hào)。圖5B是示出移動(dòng)計(jì)算設(shè)備的一個(gè)例子的架構(gòu)的框圖。也就是說(shuō),移動(dòng)計(jì)算設(shè)備500可以并入系統(tǒng)(即,架構(gòu))502來(lái)實(shí)現(xiàn)一些例子。在一個(gè)例子中,系統(tǒng)502實(shí)現(xiàn)為“智能手機(jī)”,其能夠運(yùn)行一個(gè)或多個(gè)應(yīng)用(例如,瀏覽器、電子郵件、日歷、聯(lián)系人管理器、消息傳送客戶端、游戲、以及媒體客戶端/播放器)。在一些例子中,系統(tǒng)502集成為計(jì)算設(shè)備,例如,集成的個(gè)人數(shù)字助理(PDA)和無(wú)線電話。一個(gè)或多個(gè)應(yīng)用程序450(例如,客戶端240)可以加載到存儲(chǔ)器562中,并在操作系統(tǒng)564上或與其相關(guān)聯(lián)地運(yùn)行。應(yīng)用450的例子包括電話撥號(hào)程序、電子郵件程序、個(gè)人信息管理(PIM)程序、文字處理程序、電子表單程序、互聯(lián)網(wǎng)瀏覽器程序、消息傳送程序,等等。根據(jù)一方面,布局引擎210可以加載到存儲(chǔ)器562中。系統(tǒng)502在存儲(chǔ)器562內(nèi)還包括非易失性的存儲(chǔ)區(qū)域568。非易失性存儲(chǔ)區(qū)域568可以用于存儲(chǔ)在系統(tǒng)502掉電時(shí)不應(yīng)該丟失的持續(xù)信息。應(yīng)用450可以在非易失性存儲(chǔ)區(qū)域568中使用和存儲(chǔ)信息,例如,電子郵件或電子郵件應(yīng)用使用的其它消息等。同步應(yīng)用(未示出)還駐留在系統(tǒng)502上并被編程為與駐留在主機(jī)計(jì)算機(jī)上的對(duì)應(yīng)的同步應(yīng)用交互,以保持存儲(chǔ)于非易失性存儲(chǔ)區(qū)域568中的信息與存儲(chǔ)在主機(jī)計(jì)算機(jī)處的對(duì)應(yīng)信息同步。如應(yīng)該理解的,其它應(yīng)用可以加載到存儲(chǔ)器562中并在移動(dòng)計(jì)算設(shè)備500上運(yùn)行。系統(tǒng)502具有電源570,其可以實(shí)現(xiàn)為一個(gè)或多個(gè)電池。電源570還可以包括外部電源,例如AC適配器或?qū)﹄姵剡M(jìn)行供應(yīng)或充電的加電底座。系統(tǒng)502還可以包括無(wú)線電設(shè)備572,其執(zhí)行發(fā)送和接收射頻通信的功能。無(wú)線電設(shè)備572經(jīng)由通信載波或服務(wù)提供商促進(jìn)在系統(tǒng)502和“外部世界”之間的無(wú)線連接。在操作系統(tǒng)564的控制下進(jìn)行去向和來(lái)自無(wú)線電設(shè)備572的傳輸。換句話說(shuō),無(wú)線電設(shè)備572接收到的通信可以經(jīng)由操作系統(tǒng)564傳播到應(yīng)用程序450,反之亦然。視覺(jué)指示器520可以用于提供視覺(jué)通知,或音頻接口574可以用于經(jīng)由音頻換能器525產(chǎn)生可聽(tīng)通知。在圖示例子中,視覺(jué)指示器520是發(fā)光二極管(LED),并且音頻換能器525是揚(yáng)聲器。這些設(shè)備可以直接耦合到電源570上,從而在被激活時(shí),它們保持開(kāi)啟達(dá)通知機(jī)構(gòu)所表示的持續(xù)時(shí)間,即使處理器560和其它部件可能為了節(jié)省電池電量而關(guān)閉。LED可以被編程為保持無(wú)限開(kāi)啟,直到用戶采取措施來(lái)指示設(shè)備的通電狀態(tài)。音頻接口574用于向用戶提供可聽(tīng)信號(hào)并從用戶處接收可聽(tīng)信號(hào)。例如,除了耦合到音頻換能器525外,音頻接口574還可以耦合到麥克風(fēng)以接收音頻輸入,以便促進(jìn)電話會(huì)話。系統(tǒng)502還可以包括音頻接口576,其支持機(jī)載攝像機(jī)530的操作以記錄靜止圖像、視頻流等。實(shí)現(xiàn)系統(tǒng)502的移動(dòng)計(jì)算設(shè)備500可以具有額外的特征或功能。例如,移動(dòng)計(jì)算設(shè)備500還可以包括額外的(可移除或不可移除的)數(shù)據(jù)存儲(chǔ)設(shè)備,例如,磁盤(pán)、光盤(pán)或磁帶。這種額外的存儲(chǔ)設(shè)備在圖5B中由非易失性存儲(chǔ)區(qū)域568示出。由移動(dòng)計(jì)算設(shè)備500生成或捕捉到且經(jīng)由系統(tǒng)502存儲(chǔ)的數(shù)據(jù)/信息可以本地存儲(chǔ)于移動(dòng)計(jì)算設(shè)備500上,如上所述,或者數(shù)據(jù)可以存儲(chǔ)在可以由設(shè)備經(jīng)由無(wú)線電設(shè)備572或經(jīng)由在移動(dòng)計(jì)算設(shè)備500和與移動(dòng)計(jì)算設(shè)備500相關(guān)聯(lián)的分開(kāi)的計(jì)算設(shè)備(例如,諸如因特網(wǎng)的分布式計(jì)算網(wǎng)絡(luò)中的服務(wù)器)之間的有線連接存取的任意數(shù)量的存儲(chǔ)介質(zhì)上。如應(yīng)該理解的,可以經(jīng)由移動(dòng)計(jì)算設(shè)備500經(jīng)由無(wú)線電設(shè)備572或經(jīng)由分布式計(jì)算網(wǎng)絡(luò)存取這種數(shù)據(jù)/信息。類似地,可以根據(jù)已知數(shù)據(jù)/信息轉(zhuǎn)移和存儲(chǔ)單元在計(jì)算設(shè)備之間容易地轉(zhuǎn)移這種數(shù)據(jù)/信息用于存儲(chǔ)和使用,所述單元包括電子郵件和協(xié)作數(shù)據(jù)/信息共享系統(tǒng)。圖6示出了如上所述用于提供數(shù)據(jù)可視化的系統(tǒng)的架構(gòu)的一個(gè)例子。與客戶端240或布局引擎210相關(guān)聯(lián)開(kāi)發(fā)的、交互的或編輯的內(nèi)容存儲(chǔ)于不同的通信信道或其它存儲(chǔ)類型中。例如,可以利用目錄服務(wù)622、門(mén)戶網(wǎng)站624、郵箱服務(wù)626、即時(shí)消息存儲(chǔ)628或社交網(wǎng)站630存儲(chǔ)各種文檔。客戶端240或布局引擎210可以使用任意這些類型的系統(tǒng)等提供數(shù)據(jù)可視化,如上所述。服務(wù)器615可以將客戶端240或布局引擎210提供到客戶端605A-C。作為一個(gè)例子,服務(wù)器615可以是網(wǎng)絡(luò)服務(wù)器,其通過(guò)網(wǎng)絡(luò)提供客戶端240或布局引擎210。服務(wù)器615可以在網(wǎng)絡(luò)上將客戶端240或布局引擎210通過(guò)網(wǎng)絡(luò)610提供給客戶端605。通過(guò)例子,客戶端計(jì)算設(shè)備可以實(shí)現(xiàn)或具體體現(xiàn)為個(gè)人計(jì)算機(jī)605A、平板計(jì)算設(shè)備605B或移動(dòng)計(jì)算設(shè)備605C(例如,智能手機(jī))或其它計(jì)算設(shè)備??蛻舳擞?jì)算設(shè)備的任意這些例子可以從存儲(chǔ)616獲得內(nèi)容。例如,以上參考根據(jù)本公開(kāi)的各方面的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的框圖或方法的操作圖示描述了本公開(kāi)的各方面。在框圖中記錄的功能/動(dòng)作可以一任意流程圖中示出的次序不同地發(fā)生。例如,連續(xù)示出的兩個(gè)框?qū)嶋H上可以基本同時(shí)執(zhí)行,或者有時(shí)以相反次序執(zhí)行所述框,這取決于涉及的功能/動(dòng)作。在該說(shuō)明書(shū)中提供的一個(gè)或多個(gè)例子的描述和圖示不意圖以任何方式限制或約束本公開(kāi)的范圍。在該說(shuō)明書(shū)中提供的方面、例子和細(xì)節(jié)被認(rèn)為足以傳達(dá)所有權(quán),并使得他人能夠做出和使用本公開(kāi)的最佳模式。本公開(kāi)不應(yīng)被解釋為受限于本申請(qǐng)中提供的任意方面、例子或細(xì)節(jié)。不管是組合地還是單獨(dú)地示出和描述,(結(jié)構(gòu)和方法兩者的)各個(gè)特征意圖被選擇性地包含或省略以產(chǎn)生具有特定特征集合的示例。在提供了本申請(qǐng)的描述和例示后,本領(lǐng)域技術(shù)人員可以設(shè)想到落入在本申請(qǐng)實(shí)現(xiàn)的通用發(fā)明概念的更廣泛方面的精神中的變型、修改和替代示例,而不背離本公開(kāi)的更廣泛范圍。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3