<p dir="auto">my Question:</p>
<p dir="auto">Sample ListView Page in Diffrent Environment CPU and Memory very Hight, i Want To Know Why ,And How to solution!</p>
<p dir="auto">====================================================</p>
<ol dir="auto">
<li>Doctor:</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v0.5.1, on Mac OS X 10.13.4 17E199, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] iOS toolchain - develop for iOS devices (Xcode 9.3)
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ! CocoaPods out of date (1.5.0 is recommended).
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.io/platform-plugins
      To upgrade:
        brew upgrade cocoapods
        pod setup
[✓] Android Studio (version 3.1)
[✓] Connected devices (1 available)"><pre class="notranslate"><code class="notranslate">Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v0.5.1, on Mac OS X 10.13.4 17E199, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] iOS toolchain - develop for iOS devices (Xcode 9.3)
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ! CocoaPods out of date (1.5.0 is recommended).
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.io/platform-plugins
      To upgrade:
        brew upgrade cocoapods
        pod setup
[✓] Android Studio (version 3.1)
[✓] Connected devices (1 available)
</code></pre></div>
<ol start="2" dir="auto">
<li>
<p dir="auto">比对：<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/5095376/44389556-bf033480-a55d-11e8-8894-dd6ba6023889.png"><img src="https://user-images.githubusercontent.com/5095376/44389556-bf033480-a55d-11e8-8894-dd6ba6023889.png" alt="image" style="max-width: 100%;"></a></p>
</li>
<li>
<p dir="auto">UI页面<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/5095376/44393027-2cb35e80-a566-11e8-94aa-c2368198f032.png"><img src="https://user-images.githubusercontent.com/5095376/44393027-2cb35e80-a566-11e8-94aa-c2368198f032.png" alt="image" style="max-width: 100%;"></a></p>
</li>
<li>
<p dir="auto">major Code:</p>
</li>
</ol>
<div class="highlight highlight-source-dart notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="            child: PageView.builder(
                itemCount: widget.entity.length,
                controller: controller,
//                controller: scrollController,
                onPageChanged: onPageChanged,
                itemBuilder: (BuildContext context,  int index){
                  return RefreshIndicator(
                    child: ListView.builder(
                        itemCount: dataList.length + 1,
                        itemBuilder: (context,index){
                          if (index == dataList.length){
                            return _buildProgressIndicator();
                          }else{
                            return _buildRow(dataList[index],selectIndex,size,context);
                          }
                        }
                    ),
                    onRefresh: fetchList,
                  );
                },
              ),"><pre class="notranslate">            child<span class="pl-k">:</span> <span class="pl-c1">PageView</span>.<span class="pl-en">builder</span>(
                itemCount<span class="pl-k">:</span> widget.entity.length,
                controller<span class="pl-k">:</span> controller,
<span class="pl-c">//                controller: scrollController,</span>
                onPageChanged<span class="pl-k">:</span> onPageChanged,
                itemBuilder<span class="pl-k">:</span> (<span class="pl-c1">BuildContext</span> context,  <span class="pl-c1">int</span> index){
                  <span class="pl-k">return</span> <span class="pl-c1">RefreshIndicator</span>(
                    child<span class="pl-k">:</span> <span class="pl-c1">ListView</span>.<span class="pl-en">builder</span>(
                        itemCount<span class="pl-k">:</span> dataList.length <span class="pl-k">+</span> <span class="pl-c1">1</span>,
                        itemBuilder<span class="pl-k">:</span> (context,index){
                          <span class="pl-k">if</span> (index <span class="pl-k">==</span> dataList.length){
                            <span class="pl-k">return</span> <span class="pl-en">_buildProgressIndicator</span>();
                          }<span class="pl-k">else</span>{
                            <span class="pl-k">return</span> <span class="pl-en">_buildRow</span>(dataList[index],selectIndex,size,context);
                          }
                        }
                    ),
                    onRefresh<span class="pl-k">:</span> fetchList,
                  );
                },
              ),</pre></div>
<p dir="auto">It sometimes times out:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="8:59 +428 ~1 -1: test/integration/expression_evaluation_test.dart: expression evaluation can evaluate complex expressions in build method [E]                                                         
  Did not receive expected app.started event.
  Received:
  [+  2321] [{&quot;event&quot;:&quot;daemon.connected&quot;,&quot;params&quot;:{&quot;version&quot;:&quot;0.4.0&quot;,&quot;pid&quot;:5386}}]
  [+  2357] [{&quot;event&quot;:&quot;daemon.showMessage&quot;,&quot;params&quot;:{&quot;level&quot;:&quot;warning&quot;,&quot;title&quot;:&quot;Unable to list devices&quot;,&quot;message&quot;:&quot;Unable to discover Android devices. Please run \&quot;flutter doctor\&quot; to diagnose potential issues&quot;}}]
  [+  2755] [{&quot;event&quot;:&quot;app.start&quot;,&quot;params&quot;:{&quot;appId&quot;:&quot;78fdd08f-369c-4898-a757-129e962633eb&quot;,&quot;deviceId&quot;:&quot;flutter-tester&quot;,&quot;directory&quot;:&quot;/private/var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/test_appCoDrnH&quot;,&quot;supportsRestart&quot;:true}}]
  [+  3789] Launching lib/main.dart on Flutter test device in debug mode...
  [+ 60011] &lt;timed out&gt;
  
  test/integration/test_driver.dart 248:7                 FlutterTestDriver._timeoutWithMessages.&lt;fn&gt;
  ===== asynchronous gap ===========================
  dart:async                                              Future.timeout
  test/integration/test_driver.dart 246:16                FlutterTestDriver._timeoutWithMessages
  test/integration/test_driver.dart 227:12                FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                              _asyncThenWrapperHelper
  test/integration/test_driver.dart                       FlutterTestDriver.run
  test/integration/expression_evaluation_test.dart 97:22  main.&lt;fn&gt;.&lt;fn&gt;
  
  Did not receive expected app.debugPort event.
  Received:
  [+  2320] [{&quot;event&quot;:&quot;daemon.connected&quot;,&quot;params&quot;:{&quot;version&quot;:&quot;0.4.0&quot;,&quot;pid&quot;:5386}}]
  [+  2356] [{&quot;event&quot;:&quot;daemon.showMessage&quot;,&quot;params&quot;:{&quot;level&quot;:&quot;warning&quot;,&quot;title&quot;:&quot;Unable to list devices&quot;,&quot;message&quot;:&quot;Unable to discover Android devices. Please run \&quot;flutter doctor\&quot; to diagnose potential issues&quot;}}]
  [+  2755] [{&quot;event&quot;:&quot;app.start&quot;,&quot;params&quot;:{&quot;appId&quot;:&quot;78fdd08f-369c-4898-a757-129e962633eb&quot;,&quot;deviceId&quot;:&quot;flutter-tester&quot;,&quot;directory&quot;:&quot;/private/var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/test_appCoDrnH&quot;,&quot;supportsRestart&quot;:true}}]
  [+  3788] Launching lib/main.dart on Flutter test device in debug mode...
  [+ 60093] &lt;timed out&gt;
  
  test/integration/test_driver.dart 248:7                 FlutterTestDriver._timeoutWithMessages.&lt;fn&gt;
  ===== asynchronous gap ===========================
  dart:async                                              Future.timeout
  test/integration/test_driver.dart 246:16                FlutterTestDriver._timeoutWithMessages
  test/integration/test_driver.dart 227:12                FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                              _asyncThenWrapperHelper
  test/integration/test_driver.dart                       FlutterTestDriver.run
  test/integration/expression_evaluation_test.dart 97:22  main.&lt;fn&gt;.&lt;fn&gt;
  
The job exceeded the maximum time limit for jobs, and has been terminated."><pre class="notranslate"><code class="notranslate">8:59 +428 ~1 -1: test/integration/expression_evaluation_test.dart: expression evaluation can evaluate complex expressions in build method [E]                                                         
  Did not receive expected app.started event.
  Received:
  [+  2321] [{"event":"daemon.connected","params":{"version":"0.4.0","pid":5386}}]
  [+  2357] [{"event":"daemon.showMessage","params":{"level":"warning","title":"Unable to list devices","message":"Unable to discover Android devices. Please run \"flutter doctor\" to diagnose potential issues"}}]
  [+  2755] [{"event":"app.start","params":{"appId":"78fdd08f-369c-4898-a757-129e962633eb","deviceId":"flutter-tester","directory":"/private/var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/test_appCoDrnH","supportsRestart":true}}]
  [+  3789] Launching lib/main.dart on Flutter test device in debug mode...
  [+ 60011] &lt;timed out&gt;
  
  test/integration/test_driver.dart 248:7                 FlutterTestDriver._timeoutWithMessages.&lt;fn&gt;
  ===== asynchronous gap ===========================
  dart:async                                              Future.timeout
  test/integration/test_driver.dart 246:16                FlutterTestDriver._timeoutWithMessages
  test/integration/test_driver.dart 227:12                FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                              _asyncThenWrapperHelper
  test/integration/test_driver.dart                       FlutterTestDriver.run
  test/integration/expression_evaluation_test.dart 97:22  main.&lt;fn&gt;.&lt;fn&gt;
  
  Did not receive expected app.debugPort event.
  Received:
  [+  2320] [{"event":"daemon.connected","params":{"version":"0.4.0","pid":5386}}]
  [+  2356] [{"event":"daemon.showMessage","params":{"level":"warning","title":"Unable to list devices","message":"Unable to discover Android devices. Please run \"flutter doctor\" to diagnose potential issues"}}]
  [+  2755] [{"event":"app.start","params":{"appId":"78fdd08f-369c-4898-a757-129e962633eb","deviceId":"flutter-tester","directory":"/private/var/folders/bb/n7t3rs157850byt_jfdcq9k80000gn/T/test_appCoDrnH","supportsRestart":true}}]
  [+  3788] Launching lib/main.dart on Flutter test device in debug mode...
  [+ 60093] &lt;timed out&gt;
  
  test/integration/test_driver.dart 248:7                 FlutterTestDriver._timeoutWithMessages.&lt;fn&gt;
  ===== asynchronous gap ===========================
  dart:async                                              Future.timeout
  test/integration/test_driver.dart 246:16                FlutterTestDriver._timeoutWithMessages
  test/integration/test_driver.dart 227:12                FlutterTestDriver._waitFor
  ===== asynchronous gap ===========================
  dart:async                                              _asyncThenWrapperHelper
  test/integration/test_driver.dart                       FlutterTestDriver.run
  test/integration/expression_evaluation_test.dart 97:22  main.&lt;fn&gt;.&lt;fn&gt;
  
The job exceeded the maximum time limit for jobs, and has been terminated.
</code></pre></div>