簡體   English   中英

具有大量數據表的Performance Flow文檔

[英]Performance Flowdocument with Table with a big amount of data

我嘗試做的是:
根據數據庫中的數據生成報告,然后可以查看和打印報告。 (這在WPF C#中)

我該怎么做:(通過代碼動態地)
我的窗口很簡單,它只是一個FlowDocumentPageViewer,其中沒有任何內容。

  1. 我從數據庫加載數據
  2. 使用LINQ將其正確分組
  3. 初始化新的Flowdocument
  4. 用RowGroup制作表
  5. 循環我的LINQed數據,並用包含包含所需數據的單元格的TableRows填充RowGroup
  6. 將表添加到Flow文檔

這幾乎可以很好地工作,除非記錄量達到10k。 然后由於某種原因,它會將我的CPU占用了25%的時間,耗時30分鍾。 滾動也幾乎是不可能的,沒有任何事情發生,只是完全卡住了。 但是當我得到1000條記錄時,需要18秒。 而使用2k,則需要74秒。

但是,我沒有使用表中單元格的標准方式,我必須為每個單元格創建一個TextBlock,並將其與BlockUIContainer一起使用。 但是經過一些測試,它似乎對生成文檔沒有太大影響。

有人對我應該擔心的事情有提示嗎? 這將是主要的幫助,我在這里撞牆。

我考慮過一種可能只呈現當前頁面的方式,但是我不知道FlowDocument將會有多少頁面。

我使用的數據類型只是字符串,有時是復選框(只讀)。

編輯:
處理時間似乎非常穩定,只有1秒的余量。 但是指數級的,3k已經是164秒了。

編輯2:
一些測試后,我發現問題是,當我加入的TableCell到的TableRow。 沒有它,只需要1.6秒。

原因是分組。 在wpf下,此功能存在一個已知的性能問題。 嘗試刪除分組進行測試,您會發現性能不斷提高!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM