Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

ie11: Terrible performance, but not with LumX #1771

Closed
ross-nordstrom opened this issue Mar 3, 2015 · 64 comments
Closed

ie11: Terrible performance, but not with LumX #1771

ross-nordstrom opened this issue Mar 3, 2015 · 64 comments
Labels
browser: IE This issue is specific to Internet Explorer needs: unit tests This PR needs unit tests to cover the changes being proposed type: performance This issue is related to performance
Milestone

Comments

@ross-nordstrom
Copy link

Overview

We have an application we're trying to release to production using Angular Material, but cannot get it to perform in IE10/11. After a lot of struggling (is Angular the problem? Is this, that, or the other dependecy a problem?), we've found that Angular Material framework is simply slow in IE. In comparison, LumX (a different Material Design + Angular framework) works fine in IE10/11.

Plnkr Demo of the Problem

To demonstrate the problem, I implemented a simple page with a Toolbar and list of Items in both Angular Material and LumX. They both perform equally well in Chrome, but ng-material is much slower in IE.

Performance Comparison

To test performance, I did the following:

  • Entered 900 in input box and submit (click Add People or hit Enter key)
  • Visually stop-watch the time from submission to the (xxxx) number updating
Plnkr Chrome IE11
ng-material demo ~1s ~8s
lumx demo <1s ~1s

Versions Used

Laptop: Win7 64-bit, 16gb RAM, Core i7
Chrome version: Version 40.0.2214.115 m
IE11 version: 11.0.9600.17633

While I'd prefer to use Angular Material going forward, this performance difference in IE10/11 is a deal breaker for our product. Any help or insight into this issue is much appreciated!

PS: I've also noticed in IE that when the ng-material demo page regains focus (e.g. click a different window then click back in), the page seems stuck and it often takes a while to scroll.

@brandon-shannon
Copy link

+1!

@codyhanson
Copy link

👍

3 similar comments
@jmorales4
Copy link

+1

@aangoulvant
Copy link

+1

@wilkenstein
Copy link

+1

@ThomasBurleson
Copy link
Contributor

@ross-nordstrom - Thank you for this information. Tomorrow we should have a release of Angular Material v0.8.3. Before our next milestone 0.9 release, we will address the IE11 performance issues... using your plunkr as starting points.

@ThomasBurleson ThomasBurleson added this to the 0.9.0 milestone Mar 4, 2015
@ThomasBurleson ThomasBurleson added test type: performance This issue is related to performance labels Mar 4, 2015
@ThomasBurleson
Copy link
Contributor

@robertmesserle - it would be great if you had a chance to investigate this.

@schreinbo
Copy link

+1 Thanks!

@kschwidder
Copy link

I have the same experience when including the angular gantt within a tab in angular material.
When I started with 0.7.0 the response time was significantly better.
What I have discovered so far is that the $apply time is significantly higher in IE than chrome/firefox.
Does the material framework fires more $apply fragments ? Or is is a topic for the angular team ?

performance chrome
performance ie

@gkalpak
Copy link
Member

gkalpak commented Mar 5, 2015

(I would say it is more of a topic for the IE11 team :P)

@kschwidder
Copy link

Might be. Most enterprise customers are using IE on their desktops :-( If the apps are not performing well it has an impact.

@robertmesserle robertmesserle modified the milestones: 0.10.0, 0.9.0 Mar 19, 2015
@robertmesserle
Copy link
Contributor

@robertmesserle
Copy link
Contributor

Closing for now, please re-open if the issue persists.

@ross-nordstrom
Copy link
Author

@robertmesserle That didn't fix it. I updated the ng-material plnkr from before with the new versions above and am seeing the same issue in IE11 as described in my earlier post.

Edit: I'm not sure I can re-open this, but it needs to be reopened

Edit 2: The test I'm running is simply opening that up and add 900 people, just like before.

@robertmesserle robertmesserle modified the milestones: 0.10.0, 0.9.0 Mar 25, 2015
@bradmartin
Copy link

+1 / performance is quite terrible in an older ASP.NET app we have. And the ng-material demo site is sluggish as others have stated previously.

@ThomasBurleson
Copy link
Contributor

@paulflo150 - I created a Pull Request and Gist that shows a refactoring of your layout directives.

@cleever
Copy link

cleever commented Aug 21, 2015

@paulflo150 - This is awesome!

@paulflo150
Copy link
Contributor

@ThomasBurleson - thank you sir, the refactoring looks great! I will try to create a PR this evening.

@cleever - thanks, all the credit goes to those who suggested class selectors were the answer. :)

@ThomasBurleson
Copy link
Contributor

@paulflo150 - would you mind giving me a email ping: ThomasBurleson@gmail.com. Thx.
@ALL - Thanks for everyone's help researching this issue.

@timnix
Copy link

timnix commented Aug 21, 2015

Great work! @paulflo150 & @ThomasBurleson, I reworked the gist Thomas created and got it working on the latest from here, I wasn't sure how to submit it to you guys since there was already a pull request from Thomas so here is the Gist i forked from @ThomasBurleson.

@ThomasBurleson
Copy link
Contributor

@timnix - I liked your changes so much, I updated my PR to @paulflo150

@timnix
Copy link

timnix commented Aug 21, 2015

@ThomasBurleson thanks! I was doing a little more tinkering, what are your thoughts on adding the hide and show attributes to this?

@ThomasBurleson
Copy link
Contributor

@timnix - let's see what you propose... in a Gist ?

@timnix
Copy link

timnix commented Aug 21, 2015

@ThomasBurleson Here is the updated Gist and thanks for the RegEx tip. Also, here is the updated SASS in a Gist.

@paulflo150
Copy link
Contributor

@ThomasBurleson and @timnix thanks for all the help! I just submitted the PR.

@calebeaires
Copy link

+1

@kschwidder
Copy link

Amazing job !! The responsiveness has been significantly increased !
Thx

@ThomasBurleson
Copy link
Contributor

Fixed with @paulflo150's PR #4282 and the commit SHA 46b5500

@ThomasBurleson
Copy link
Contributor

@paulflo150 - care to regenerate the performance capture (for Select; as done above) with the latest code from master ?

@ThomasBurleson
Copy link
Contributor

@kschwidder - plz try it now [with the latest updates on master] and http://material.angularjs.org

@paulflo150
Copy link
Contributor

@ThomasBurleson - there is a slight difference, but from what I can tell that is because of the navigation (not sure if there were any changes made to it the last few days). Other than that it looks good to me.

image

@stevenmiles
Copy link

Tested in http://codepen.io/stevenmiles/pen/MwNJWd and performance issue described in #3455 went away.

Thanks @paulflo150 & @ThomasBurleson

@DOrlov77
Copy link

DOrlov77 commented Feb 2, 2016

+1 the problem is here still... It's horribly slow with IE11. Just take a look on dialogs page demo:
https://material.angularjs.org/latest/demo/dialog
That issue should be reopened.

@Splaktar
Copy link
Member

Splaktar commented Feb 2, 2016

@DOrlov77 please open a new issue.

@parshotam
Copy link

md-tabs is very slow working.Following code i used

            <md-tab label="tab1" align="l" md-on-select>
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab One</h1>
                    <div class="row">
                        <md-select class="col-lg-8 increasewd" name="tr_type" ng-model="tr_type" placeholder="select market"  aria-label="" required>
                            <md-option  ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                        </md-select>
                    </div>
                    <div class="row" style="margin-top: 50px !important">
                        <md-select class="col-lg-8 increasewd" name="tr_type2" ng-model="tr_type2" placeholder="select market"  aria-label="Tariff" required>
                            <md-option ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                        </md-select>
                    </div>

                </md-content>
            </md-tab>

            <md-tab label="tab2"  md-on-select>
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab Two</h1>
                    <div class="row">

                            <md-select class="col-lg-8 increasewd" name="tr_type" ng-model="tr_type" placeholder="select market"  aria-label="Tariff" required>
                                <md-option ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                            </md-select>

                    </div>
                    <div class="row" style="margin-top: 50px !important">
                        <md-select class="col-lg-8 increasewd" name="tr_type2" ng-model="tr_type2" placeholder="select market"  aria-label="" required>
                            <md-option ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                        </md-select>
                    </div>
                </md-content>
            </md-tab>

            <md-tab label="tab3" md-on-select>
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab Three</h1>
                    <div class="row">
                        <md-select class="col-lg-8 increasewd" name="tr_type" ng-model="tr_type" placeholder="select market"  aria-label="" required>
                            <md-option ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                        </md-select>
                    </div>
                    <div class="row" style="margin-top: 50px !important">
                        <md-select class="col-lg-8 increasewd" name="tr_type2" ng-model="tr_type2" placeholder="select market"  aria-label="" required>
                            <md-option ng-value="m" ng-repeat="m in lstMarkets" >{{m.name}}</md-option>
                        </md-select>
                    </div>
                </md-content>
            </md-tab>
        </md-tabs>

In lstMarkets have a thousand records of markets. When i click the the second tab it take a more time to show the second tab . When i remove the or ng-repeat in md-select options then it works fine. Have a any solutions load the tab normally with all md-select options ?

@Splaktar
Copy link
Member

Splaktar commented Mar 7, 2016

@parshotam this issue is closed. Please post questions like this in the Angular Material forum on Google Groups. There is a link to the forums on the bottom of the getting started page.

@stevenmoberg
Copy link

I just saw this today with very large content and removed all css/js and added them back 1 by 1 to determine what was causing the issue. jquery-ui.css slowed it down so I removed all its css and slowly add it back and found that the single ".ui-button:active" style was causing the issue even through I did not have any elements with this classname on the page. I removed the ":active" selectors from my style sheets and I got the performance back. It doesn't make any sense and I haven't seen any other reporting of this IE11 issue but thought it might help.

@angular angular locked and limited conversation to collaborators Mar 19, 2016
@Splaktar Splaktar added the needs: unit tests This PR needs unit tests to cover the changes being proposed label Mar 5, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
browser: IE This issue is specific to Internet Explorer needs: unit tests This PR needs unit tests to cover the changes being proposed type: performance This issue is related to performance
Projects
None yet
Development

No branches or pull requests