diff --git a/apps/app/ui-tests-app/flexbox/flexbox-main-page.ts b/apps/app/ui-tests-app/flexbox/flexbox-main-page.ts index a0743205c..60f8f4173 100644 --- a/apps/app/ui-tests-app/flexbox/flexbox-main-page.ts +++ b/apps/app/ui-tests-app/flexbox/flexbox-main-page.ts @@ -11,6 +11,7 @@ export function pageLoaded(args: EventData) { examples.set("flexboxall", "flexbox/flexbox"); examples.set("flexrepeat", "flexbox/flexbox-repeater"); + examples.set("flex-perf", "flexbox/flexbox-perf-comparison"); let viewModel = new FlexboxMainPageViewModel(wrapLayout, examples); page.bindingContext = viewModel; diff --git a/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.ts b/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.ts new file mode 100644 index 000000000..4be7a8680 --- /dev/null +++ b/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.ts @@ -0,0 +1,64 @@ +import {TabView} from "ui/tab-view"; +import * as utils from "utils/utils"; + +const titles = ["Etiam lacinia", "Imperdiet ante", "A interdum", "Quisque tempus", "Sodales viverra"]; +const bodies = [ + "Vivamus ipsum neque, commodo rutrum finibus sit amet, cursus id sapien.", + "Duis et iaculis odio. Class aptent taciti.", + "Sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.", + "Etiam vitae lacinia purus. Vestibulum laoreet nibh a porta aliquet.", + "Vivamus ut eros vitae felis volutpat aliquet.", + "Aliquam fermentum mauris consequat hendrerit elementum.", + "Nam odio tortor, malesuada congue diam volutpat, placerat ullamcorper risus.", + "Curabitur eget nunc viverra justo bibendum rutrum ut nec lectus.", + "Pellentesque et lacus vel turpis suscipit posuere sed non sapien.", + "Integer eget ornare nunc. In lacinia congue sollicitudin.", + "Quisque lobortis quam in risus porttitor, ac laoreet lacus auctor." +]; + +const items = []; +for (var i = 0; i < 64; i++) { + items.push({ + icon: "~/ui-tests-app/flexbox/icons/icon" + (1 + (i % 3)) + ".jpg", + title: titles[i % titles.length], + body: bodies[i % bodies.length], + up: (i * 991) % 100, + down: (i * 997) % 100 + }); +} + +export function selectionChanged(args) { + clear(args); +} + +let repeaterIds = ["repeaterFlexGrid", "repeaterGrid", "repeaterFlexStack", "repeaterStack"]; + +export function clear(args) { + repeaterIds + .map(name => args.object.page.getViewById(name)) + .forEach(repeater => { + repeater.bindingContext = null; + }); + + args.object.page.getViewById("title").text = "---"; + + utils.GC(); +} + +export function generate(args) { + let tab: TabView = args.object.page.getViewById("tabview"); + let index = tab.selectedIndex; + + let repeater = args.object.page.getViewById(repeaterIds[index]); + + clear(args); + setTimeout(() => { + let start = Date.now(); + repeater.bindingContext = items; + setTimeout(() => { + let end = Date.now(); + args.object.page.getViewById("title").text = (end - start).toString(); + console.log("Duration: " + (end - start)); + }); + }); +} diff --git a/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.xml b/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.xml new file mode 100644 index 000000000..c0db01ef2 --- /dev/null +++ b/apps/app/ui-tests-app/flexbox/flexbox-perf-comparison.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/app/ui-tests-app/flexbox/icons/icon1.jpg b/apps/app/ui-tests-app/flexbox/icons/icon1.jpg new file mode 100644 index 000000000..14974904c Binary files /dev/null and b/apps/app/ui-tests-app/flexbox/icons/icon1.jpg differ diff --git a/apps/app/ui-tests-app/flexbox/icons/icon2.jpg b/apps/app/ui-tests-app/flexbox/icons/icon2.jpg new file mode 100644 index 000000000..a962605ca Binary files /dev/null and b/apps/app/ui-tests-app/flexbox/icons/icon2.jpg differ diff --git a/apps/app/ui-tests-app/flexbox/icons/icon3.jpg b/apps/app/ui-tests-app/flexbox/icons/icon3.jpg new file mode 100644 index 000000000..d7fdca12d Binary files /dev/null and b/apps/app/ui-tests-app/flexbox/icons/icon3.jpg differ diff --git a/apps/app/ui-tests-app/flexbox/icons/thumbsdown.png b/apps/app/ui-tests-app/flexbox/icons/thumbsdown.png new file mode 100644 index 000000000..e44c04219 Binary files /dev/null and b/apps/app/ui-tests-app/flexbox/icons/thumbsdown.png differ diff --git a/apps/app/ui-tests-app/flexbox/icons/thumbsup.png b/apps/app/ui-tests-app/flexbox/icons/thumbsup.png new file mode 100644 index 000000000..3a43ecae2 Binary files /dev/null and b/apps/app/ui-tests-app/flexbox/icons/thumbsup.png differ