So are you you saying that a theme with fewer styling options set it more efficient than a theme with more styling options set? That makes sense.
Of course, a theme with more gradients, shadows, images in backgrounds, etc... will be more overhead both in terms of processing and network latency.
The challenge is to use themes efficiently and finding the balance in form and function to provide good user interface.
I am trying to start a discussion and find a solution to why the good old classic theme is faster than a FileMaker Theme.
Have you seen the enclosed file ?
It has been designed by FileMaker, so I assume it can be used for testing.
I would think that after you have opened this file, the Theme Tranquil has been loaded into memory etc. Therefore it should be very fast to go to another layout using the same theme.
BUT it is faster to go to a layout using Classic, where no styles have been defined.
I don't get it ???
Classic isn't a theme. Classic has no theme styles or underlying structure to it. Hence, it has no rendering to do other than what you put in the layout layer.
The admonition in the performance document is to use theme styling WHERE IT EXISTS rather than to use theme styling PLUS layout styling PLUS object styling. The more layers you add to a layout, the more work FileMaker has to do.
If you have a very simple layout with very few objects and those objects have very limited styling applied, then Classic may very well render faster than a theme. However, since the theme styles only have to be loaded once per layout and then applied to every object that uses them, as a general rule, using theme styling is faster than using object-specific styling.
And the question is, after the first time you visit the layout, are subsequent visits to the same layout still as slow? FM will not download the layout objects and theme data until you visit the layout. Once it's loaded, future visits to that layout should be significantly faster.
As Mike_Mitchell pointed out, there are a lot of variables to consider. There are times Classic can be faster. But in most cases, it is not.
Thanks for your input Mike and Joshua.
Have you taken the time to download my example file, and play a little around with it ?
You can go back and forth very fast, and see that no matter how many times the different layouts have loaded - Tranquil is always slowest.
Go to Classic Theme with all objects styled like in the Them - 50 ms
Go to Tranquil Theme - 80 ms
Can we conclude that the theme is 60% slower ??
I know this is just a very simple test file - but I have seen the exact same "slowness" in my own much bigger solution - just scaled up.
And yes when you come back to a layout where you have been before it is a little faster - but so is classic - and still slower
Have tried the same on Windows - same problem
Lars, played around with your attached FM file. changed the theme to Enlighted and verified that all objects on the layout were part of the theme (that there were no "red" triangles on any objects in "Styles" ) and got rid of the script step "Refresh Window". Time to load was 15 millesconds average on both the Classic Layout and the Enlightened Theme layout. so very similar results. But as you change and add to the Classic Layout I would expect that performance time would get slower and slower. Changed back to other themes including Tranquil with similar results.
I found that if I removed the Refresh Window step the timed result showed up before the screen actually was rendered - and I also had similar results.
In the larger solution - the refresh window step was not needed in order to see the difference.
Admit that I may have forgotten to style a few objects.
adding the "refresh window" script... I get same result across layouts.... just slower overall.
could you please post your file - would love to see it.
I played around with the file. On the layout that opens that has your labels on it about the slow layouts...I looke at each object on the layout. 80% of them had unsaved changes to the Style/Theme. That would be a big reason for the slow down. After I saved everything back to the styles, and up to the theme, it rendered just as fast as the classic layout. Threw it up on my server to test, and Classic was noticeably slower...especially after I spent some time styling many of the objects.
Again, as pointed out. A simple layout won't show the affect as much. And a test on that layout in the contacts sample file is far from a well controlled, accurate test...if you want to actually see performance differences between layouts/files. Richard Carlton has a nice video about optimizing layouts ( it was primarily for WebDirect, but the principles and testing approach works for FileMaker Pro clients as well ).
However, I can say this...in many of the files that I converted to 13, most of them don't convert as cleanly as I'd like. I do see some general performance issues and layout weirdness that I don't see in files created from scratch in 13.
I tried something else in my bigger and now "themed" solution.
Made a copy - went to layout: Adresses - select all - copy - delete everyting - changed theme to classic - pasted everthing again.
Did the same on 2 other main layouts Products and Orders
Here is what I found working locally on MacBook Pro with SSD
Opening solution with Themes: Average time 625 ms.
Opening solution where Theme was replaced with Classic: Avg. time 540 ms.
( a lot of other things going on - so if I isolated the loading of the Adresses layout, the relative difference would increase)
Via Navigation script go from Adresses in Themed edition:
to Products (173) to orders (195) to Adresses (145) to products (163) to orders (169) to adresses (147) ms.
Via Navigation script go from Adresses in Classic:
to Products (99) to orders (108) to Adresses (76) to products (79) to orders (88) to adresses (76) ms.
Again Claissic is faster
I am quite new to working with themes - so I still hope that someone can prove me wrong.
...Otherwise FileMaker should rewrite the Design for Performance manual :-)
1. Construct your solution with Themes - easyer for changing layouts in your solution etc. etc.
2. When you are ready for deployment - make a back-up as your future Master,
3. Go to every layout - select all - copy - delete everything - change theme to classic - Paste.
4. Upload to server
I recommend you do not use the Classic Theme. It's a special conversion theme that should only be used when converting a file. IMHO, you should change any and all Classic Themes to something else for continued use.
Classic Theme has special rules associated with it. For example it cannot be used on Web Direct (WebD). No telling what else is going under the hood. I certainly would never use it for testing rendering speed. It just doesn't render the same as a regular theme.
BTW, theme information is also copied to the clipboard along with the objects. To properly set an objects theme to the current layout you need to use past-without-style.
From what I understand, while the Classic theme may not have styles, the CSS used to render the theme is much greater than the CSS used to render the other themes. If you have lots of local styles on your layouts based on a new FM13 theme, that will make the layout slow whereas if the layout based on the Classic theme has no local styling that would potentially make it quicker.
If you copy your layout objects that have no local styling from an FM13-themed layout, change the layout to the Classic theme, and then paste the objects, all the layout objects now have local styling (red triangles next to Style for all objects). This should make the Classic theme slower than your FM13 theme if there are no local styles on the FM13 theme.
I'm simply not seeing what you are. I'm seeing exactly the opposite. With the exception of the most simple themes. The reason, logically, is that themes have some CSS options that simply take longer to render. So a few object, in Classic, that have very little styling and no shadows, gradients etc...I would expect to render faster on the screen. It's like rendering a plain black or white layout vs one with 16 million colors. You WILL see a difference.
The benefit to themes comes in overall performance. If you have 100 objects on a layout ( 50 fields, 30 labels 20 buttons ), and you style all of the different groups of objects the same, this is what you get ( mind you this is oversimplified ):
100 pieces of CSS code ( min 1 for each object )
100 pieces of Object info ( the data for the structure of fields, labels, buttons )
Table Structure data.
3 StyleSheets ( 1 for each style type )
3 pieces of Object info ( the data for the structure of the different object types )
Table Structure Data.
If you look at the data size for the 2 layouts, you see really quickly that the layout for Classic theme is WAY larger. Now you have to move that data across the WAN...3x the size = 3x the transfer time. Richard Carlton's video does a nice job of showing the differnce in layout size with changes made to the theme. And how that impacts performance.
Above you are referencing 173 ms vs 99 ms. Will your user really notice? Even 600 ms is only .6 of a second. Will they notice? The average blink speed of a human is 300-400 ms. I'm guessing by the time their eyes refocus on the screen after a bllink, the screen would be rendered. What they WILL notice, is the delay it takes your classic theme over a WAN to first download the layout, then render it. Using that sample file and your testing methods are just not really a sound way to determine if it's slower.
Try rebuilding a layout from scratch in 13, do NOT copy and past the fields from one layout to another, because they tend to carry excess baggage with them. Drop them in from the field picker. Now test the speed of that layout. It's really best if you can use a new FILE, but I know not all of us have time for that right now.