perf(list): benchmarks for list and list-item (#977)

* perf(list): benchmarks for list and list-item

* chore: run formatter
This commit is contained in:
Elliott Marquez 2020-03-06 16:35:29 -08:00 committed by GitHub
parent 02aa8a98d1
commit aaafc9abe3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 69 additions and 1 deletions

View File

@ -33,7 +33,7 @@
"powerwash:ts": "rm packages/*/*.js & rm packages/*/*.js.map & rm packages/*/*.d.ts & rm packages/*/.tsbuildinfo",
"powerwash:styling": "rm packages/*/src/*-css.ts",
"powerwash:bench": "rm -rf test/lib & rm test/.tsbuildinfo*",
"powerwash": "npm run powerwash:ts & npm run powerwash:styling * npm run powerwash:bench && rm -rf node_modules",
"powerwash": "npm run powerwash:ts & npm run powerwash:styling & npm run powerwash:bench && rm -rf node_modules",
"watch": "npm run build && node scripts/watcher.js",
"watch:tests": "tsc --build test/tsconfig.json -w & tsc --build test/tsconfig-node.json -w"
},

View File

@ -0,0 +1,26 @@
/**
* @license
* Copyright 2020 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import '@material/mwc-list/mwc-list-item';
import {html} from 'lit-html';
import {measureFixtureCreation} from '../../util/helpers';
measureFixtureCreation(
html`<mwc-list-item selected activated>Apple</mwc-list-item>`, {
numRenders: 100,
});

View File

@ -0,0 +1,42 @@
/**
* @license
* Copyright 2020 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import '@material/mwc-list';
import '@material/mwc-list/mwc-list-item';
import {List} from '@material/mwc-list';
import {ListItem} from '@material/mwc-list/mwc-list-item';
import {html} from 'lit-html';
import {measureFixtureCreation} from '../../util/helpers';
const renderCheck = async (root: ShadowRoot) => {
const list = root.firstElementChild as List;
const lastItem = list.lastElementChild as ListItem;
await lastItem.updateComplete;
await list.updateComplete;
};
measureFixtureCreation(
html`
<mwc-list activatable multi>
<mwc-list-item></mwc-list-item>
<mwc-list-item selected activated>Apple</mwc-list-item>
<mwc-list-item>Banana</mwc-list-item>
<mwc-list-item selected activated>Cucumber</mwc-list-item>
</mwc-list>`,
{renderCheck});