Is the latest FileMaker Pro and FileMaker Server faster than previous versions?
HOnza's team has performed over 38000 tests of FileMaker software from version 12 to version 16 on both Mac and Windows.
Some results were surprising, some even shocking, such as sorts and finds being slower with indexed fields than with unindexed fields...
In his session, HOnza is going to share his most interesting discoveries with you to help you to make the right decisions from your solution's performance perspective. Even though this session’s topic is the same as HOnza’s session at FMK2016, the results shared are going to be from new tests, some even inspired by last year’s findings.
Can search in an indexed field be really slower than search in an unindexed one?
How can database structure affect speed of performing scripts on server?
Come to this session, presented by the FileMaker DevCon 2015 Developer Cup Champion, and find out!
FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults by HOnza Koudelka
1. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
www.filemaker-konferenz.com
Is the latest FileMaker Pro and FileMaker Server faster than previous versions?
Can search in an indexed field be really slower than search in an unindexed one?
How can database structure affect speed of performing scripts on server?
Latest FMP/FMS Performance Questions & Test Results
2. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
HOnza Koudelka
• Co-founder and co-owner of 24U Software,
FBA Platinum Member
• Developing FileMaker solutions since 1991
• FileMaker 8, 10, 11, 12, 13, 14, 15, and 16
Certified Developer
• Leading team of 5 other certified developers
• Winner of the FileMaker DevCon 2015 Developer Cup
• FileMaker Mad Dog Award 2011 winner
• Mad Optimizer and achiever of the impossible…
• Vendor session speaker at FileMaker DevCon, spoke at Pause[x]London and
Pause[x]Berlin, and remotely at PauseOnError Portland
• FileMaker Konferenz 2016 speaker
3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
What does FAST look like?
4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
What does FAST look like?
5. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Fast
/fast/
adjective
1. moving or capable of moving at high speed
“a fast and powerful car”
adverb
1. at high speed
“he was driving too fast”
2. so as to be hard to move: firmly or securely
“the ship was held fast by the anchor chain”
schnell
fest
6. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Two perspectives
• Technical speed makes things possible
• Perceived speed defines what’s important
7. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
What’s schnell enough?
• Amazon discovered that for every one second delay,
conversions dropped by 7 %
• Walmart found that it gains 1 % revenue increase for
every 100 ms of improvement
• HubSpot considers the ideal page load speed for your
website's HTML to be less than 1.5 seconds
• Blink of an eye takes between 300 and 400 ms
8. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Test Equipment
• Mac Pro (early 2008)
• 2 x 2,8 GHz Intel Xeon
• 8 GB RAM
• Separate hard drive for data
• Mac OS X 10.11.6 El Capitan
• Windows Server 2012 R2
• MacBook Pro 15” mid 2012 as client for WAN
testing
• VDSL 20Mbps/2Mbps for WAN testing
• FileMaker Server versions 14, 15, 16
• FileMaker Pro Advanced 12, 13, 14, 15, 16
9. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Test Solution
• Updated WhatIsFaster.fmp12 originally
created for FileMaker DevCon 2013
• Automated test scripts running at least
three times with the same test data
• Unattended computer with disabled
screensaver and energy saver
• Perform Script On Server for server
performance testing
• Random generated data o different types
and sizes (except for containers)
• Random substrings from a 297840
characters long “Lorem Ipsum” test text
10. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
• Export & Import Records as tab delimited text
• Creating records with a lot of text
• Sort Records by indexed/unindexed field
• Perform Find
• indexed vs unindexed field
• small vs large result found set
• number vs text
• unique vs common values
• Position vs PatternCount
• Replace Field Contents vs Looped Set Field
• Summary fields vs Aggregate functions vs ExecuteSQL
• Delete All Records, Truncate Table, Delete All Found Records (leaving one record)
• Popup vs Dropdown rendering
• Real clients upgrading to FileMaker 15
• Perform Script on Server with Spider vs Anchor/Buoy vs Selector-Connector
What was tested
38 855
tests
(4385 last year)
11. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
What was NOT tested YET
• Multiple users
• Multiple concurrent tasks
• Working with container fields
• Exact amounts of data transferred between client and server
• FileMaker Go
• FileMaker WebDirect
• FileMaker Cloud
• XML / PHP / ODBC / JDBC connections
• Two-machine deployment
• FileMaker Server with enabled SSL
• Server-side schedules, including backup schedules
• Different cache sizes and other configuration differences
12. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Which Pro Advanced is the fastest?
12 13 14 15 16
13. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Exporting Records
14. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Importing Records
15. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Creating records with a lot of text
16. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Sorting Records
17. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Performing Find in a simple table
18. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Performing Find in a table with long text
19. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Deleting records
20. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Deleting records
Both client & server 15+
21. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Batch-modifying records
22. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Batch-modifying records
23. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Beware Base64
• Real experience from a customer
• Huge containers can be stored as text
• Doing so can have fatal impact on performance
24. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Which Server?
14 15 16
25. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Real client going from FMS13 to FMS15
216 records 237 records
985 records
26. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Client or Server?
27. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Batch-modifying records
28. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
FMSE shares resources with FMS
29. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
When to use Perform Script on Server?
30. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
FMSE utilizes direct sockets
31. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
FMSE shares resources with FMS
Indexed Unindexed
32. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
FMSE shares resources with FMS
Indexed Unindexed
33. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Indexed vs Unindexed
34. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Sort Records
1 of 100 Unique
37. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Under the Hood: Opening a File
• Seven-step opening process
• Step 3: Create or reuse temp file (no reuse for Perform Script On Server)
• Step 5: DBEngine processing
• List of tables
• Relationships
• Master map of all table occurrences
• Step 6: FMEngine processing
• Window
• Layout, Value lists, Font mappings, Custom menus
• Script triggers
38. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Why is this important?
• User opens database only once or twice per day
• Every CWP session opens a file
• Every server-side script creates a new client session
• Every Perform Script On Server creates a new client session
• Perform Script On Server can be run asynchronously (without waiting)
• One user can start multiple server-side scripts within a single second
1 second to start a script = TOO SLOW
How long does your solution take to open?
39. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Real solution test
40. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Conversion to Anchor/Buoy
Before:
• 2359 total table occurrences
• 799 table occurrences in largest TOG
• 13 relationships longest path between TOs
After:
• Largest TOG split to 21 smaller TOGs
• 2349 total table occurrences
• 282 table occurrences in largest TOG
• 9 relationships longest path between TOs
41. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
After conversion to Anchor/Buoy
42. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
After adding Selector-Connector
43. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Time to Perform Script on Server
Spider Anchor/Buoy Selector Connector
44. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Under the Hood: Commit Notifications
45. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Notifications are sent…
• from server to client as part of reply to next client’s request
• whenever a change is committed
• to every client having the file open (even hidden)
• about every record (unless entire table is changed)
• in about 32K chunks
• without actual record data
46. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Things to avoid with connected users
• Modifying huge amounts
of records (in open files)
• Changing data in records
containing keys for portals
• Changing relationship
graph (in any file)
47. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
Conclusion(s)
• FileMaker 16 is mostly faster than previous versions
• There are exception (such as holding too long text in a field)
• You never know until you measure it
• PSOS helps mainly with long operations dealing with many records
• The more records you modify the less users you want connected
• More small TOGs is better than one large TOG
• There IS a path from Spider to Anchor/Buoy other than rewrite
48. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka
More resources
• FileMaker Community > Discussions > Performance
• FileMaker DevCon Session Recordings (available on YouTube)
• Performance related sessions
• Under the Hood sessions
• FM Academy & Skeleton Key webinars (FMAcademy.com)
• “Designing for WAN Peformance”
• FileMaker Optimizers LinkedIn Group (FMOptimizers.com)
• 24U FM Bench (FMBench.com)
• Big-O Cheat Sheat (bigocheatsheet.com)
• A Gentle Introduction to Algorithm Complexity Analysis (discrete.gr/complexity/)
• Fell free to ask for consultation at honza@24uSoftware.com or 24usw.com/consult
49. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Vortrag und Sprecher
Vielen Dank unseren Sponsoren