FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
www.filemaker-konferenz.com
Performance Questions, Test Results, and Recent Experience
HOnza Koudelka
FileMaker Performance Update 2019
2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | 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, 16, 17, 18
Certified Developer
• Team of 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, 2017, and 2018 speaker
3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Agenda
• Key Discoveries from Previous Years
• Automated Test Results
• Recent Experience & Under the Hood
• Benchmarking Techniques
• Optimization Techniques
• Questions & Answers
4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Key Discoveries from Previous Years
• Large amounts of text
• Container vs text (danger of Base64)
• Server-side scripts considerations
• Spider vs Anchor/Buoy vs Selector-Connector
• Structure impact on Set Field performance
• Slow network impact
• Layout rendering
• Expensive objects
• Conditional formatting
• Relationship sorting
• Data API vs PHP API
5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Why Performance Lab?
• Perceived speed defines what’s important
• Technical speed makes things possible
6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Huge Amounts of Text Not Good
7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Beware Base64
• Real experience from a customer
• Huge containers can be stored as text
• Doing so can have fatal impact on performance
8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
PSOS is a FMS Client
16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
24U Collector Optimization
10.9 x faster on LAN
2.4 x faster on 3G
17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | 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
• another reason for using transactions
18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
• PHP API is based on Tomcat
• Data API is based on Node.js
• Data API is supposed to be faster and more stable
• PHP API is deprecated and disabled by default
• Data API requires HTTPS only, PHP API allows HTTP
19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Data API vs PHP API
21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
WPE after trying to fetch 300k records
22. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• Posted in FileMaker Community
• Blank layout
• Isolated table occurrence
• No records in any table
• Open locally in FileMaker Pro Advanced
• Creating 100 records in a loop takes…
30 seconds
23. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• 1037 relationships
• 1004 in this TOG
• 690 around this TO
• 7 hops longest path
26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
1037
1116 1194
7516
9701
Total number
of relationships
27. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File
• large number of relationships all depend on the contents of one field
• FileMaker looks for all the possible combinations of relationships that can
be invalidated because that field changes
• That information is not in the join graph but in the field dependencies stored
as part of the field definitions.
• Roughly 27,000 possible joins that could be affected
• Higher level view code looks at all affected TOs and checks to see if any base
tables of those TOs are currently in any window and if there are any portals
• => Potential for optimization in future versions
30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Test Equipment
• Mac Pro (early 2008)
• 2 x 2,8 GHz Intel Xeon
• 16 GB RAM
• Mechanical 7200RPM SATA drives
• Separate drive for data
• macOS 10.13 High Sierra
• FileMaker Server versions 17 and 18
• FileMaker Pro Advanced 17 and 18
31. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
New: FileMaker Cloud
• FileMaker Cloud for AWS 1.18
• 5-user license
• The minimum offered t2.medium instance
• Default settings
• Hosted in Frankfurt
• FileMaker Cloud 2
• FBA trial 5-user license
• Cloud Compute: Medium
• Hosted in USA
32. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
What was NOT tested
• Multiple users (concurrent sessions simulated by multiple server-side scripts)
• Working with container fields
• Exact amounts of data transferred between client and server
• FileMaker Go
• FileMaker WebDirect
• XML / PHP / ODBC / JDBC connections
• Two-machine deployment
• Disabled SSL
• Server-side schedules, including backup schedules
• Different cache sizes and other configuration differences
36. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Insanely Slow File: Continued
• Huge impact on locally opened file or over network
• Minimum impact on faceless server-side processing
• Number of dependencies has higher impact than
number of relationships
37. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
38. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
39. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
40. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
Using 9 x string start match
42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA with Locally Open Database
Using 9 x string start match
43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
Best result
Worst result
45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FMPA connecting to server
47. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Test Set
• Export 10 000 records as TDT
• Import 10 000 records from TDT
• Various sorts
• Calculating totals
• Various finds
• Deleting all records
• Everything in 5 iterations
• Multiple PSOS sessions concurrently
• Each session accessing only its own records
48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Sessions Interference
Exports Imports Other Deletes
Exports Imports Other Deletes
Exports Imports Other Deletes
Exports Imports Other Deletes
49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
50. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
51. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
52. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Exporting 10 000 records 5 times
53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Importing 10 000 records 5 times
57. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Replace in 10 000 records
58. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Replace in 10 000 records
59. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Looped Set Field in 10 000 records
60. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Looped Set Field in 10 000 records
61. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Find 90 % of records by unindexed field
62. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Find 90 % of records by unindexed field
65. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Complete Test Set (575 tests)
66. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Complete Test Set (575 tests)
67. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
FileMaker Cloud Compute Limits
This warning means you’re consuming CPU credits and your
FileMaker Cloud instance may become very slow soon.
68. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Bonus Slides (Not Presented at FMK)
After I presented my session at FMK I had a chance to get more info from Claris
in relationship to the FileMaker Cloud performance. I also performed another
series of 34394 tests on both FileMaker Cloud 1 and FileMaker Cloud 2.
This extra information is so important that I have decided to add it here in the
form of a few extra slides for your benefit.
I have also amended the slide with links to external resources, so make sure to
check them out.
69. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Explained
• Your cloud instance earns defined CPU credits every millisecond
• t2.medium earns 24 credits per hour
• Your cloud instance consumes credits depending on how much processing power it uses
• Every kind/size of instance has defined a baseline performance
• Baseline performance means the amount of CPU usage that consumes exactly the
same amount of credits that are earned
• t2.medium has 2 vCPUs and baseline performance of 20 % per vCPU
• When you’re utilizing less than baseline performance, you’re accruing credits
• When you’re utilizing more than baseline perofrmance, you’re spending credits
• You cannot accrue more than X credits
• t2.medium has the limit set to 576
• You accrue the maximum if you leave it idle for 24 hours
• When you have no credits left, your performance gets limited to baseline via throttling
70. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Testing FM Cloud 1.18
This is how my tests utilized AWS CPU credits on FM Cloud 1.18.
I had enough accumulated CPU credits,
so my whole test finished before consuming them all.
71. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
CPU Credits Testing FM Cloud 2.18
On FM Cloud 2.18 however
my tests were affected
by consuming all CPU credits
72. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
So I added this after each test…
…and executed another series of tests.
But this time, instead of having all tests run from within one main server-side script, I am now
running N simultaneous scripts for one test and don’t start the next test until all are done.
73. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Standard Test Time in Seconds (FM Cloud 2)1x PSOS
1h40m 9h20m 4h
5x PSOS
10x PSOS
The chart shows time in seconds consumed by the “standard test”, reflecting the CPU power
actually available to the current script session. This seems like I have consumed all CPU credits
after the tests were running for about 11 hours.
74. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Same test running on FM Cloud 1.18
This time my tests consumed the CPU credits even on FM Cloud 1.18
75. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Standard Test Time in Seconds (FM Cloud 1)1x PSOS
1h45m 1h30m 10h45m
5x PSOS
10x PSOS
Just like with FM Cloud 2, 5 concurrent scripts seem to share the CPU, so standard test time is
longer than with 1 script, but after consuming all CPU credits it increases dramatically.
76. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Recent Experience & Under the Hood
• Cache Allocation Setting
• Printing with Merge Fields
• SSD Performance Trap
• Master Record Lists & Found Sets
• Startup Restoration & Page Level Locking
77. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue
• Their FileMaker Server was becoming so slow that they could not use it
• Restart always resolved it but only for a day or two
• Serving around 100 users, 48 out of 56 GB was used for FMS cache
• Decreasing the cache setting to 8 GB stabilized the server at max performance
2 GB
Windows
56 GB Total RAM
1 GB
Apps
48 GB
FMS Cache
5 GB
left for
FMS
Only 50 MB per user!
78. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue
• Their FileMaker Server was becoming so slow that they could not use it
• Restart always resolved it but only for a day or two
• Serving around 100 users, 56 out of 64 GB was used for FMS cache
• Decreasing the cache setting to 8 GB stabilized the server at max performance
2 GB
Windows
56 GB Total RAM
1 GB
Apps
8 GB
FMS Cache
45 GB
left for
FMS
450 MB per user :-)
79. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Cache Allocation Setting
• Customer from Pensylvania turned to us to help them with a performance issue
• Their FileMaker Server was becoming so slow that they could not use it
• Restart always resolved it but only for a day or two
• Serving around 100 users, 56 out of 64 GB was used for FMS cache
• Decreasing the cache setting to 8 GB stabilized the server at max performance
2 GB
Windows
56 GB Total RAM
1 GB
Apps
8 GB
FMS Cache
45 GB
left for
FMS
450 MB per user :-)
fmsadmin set serverconfig
cachesize=8192
80. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
• Same customer wanted to improve printing speed
• Report layout was taking up to 3 minutes to print
• Nothing obvious to optimize in the script
81. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Printing with Merge Fields
• Same customer wanted to improve printing speed
• Report layout was taking up to 3 minutes to print
• Nothing obvious to optimize in the script
01 min 52.319366 sec
85. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
SSD Performance Trap
0
125
250
375
500
130 120 110 100 90 80 70 60 50 40 30 20 10 20 30 40 50 60 70 80 90 100 110 120 130
Write speed depending on empty space on iSystem (iWork had 95 GB free all the time)
Writepseed(MB/s)
Space available on iSystem (GB)
86. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record Lists & Found Sets
• Record lists represented as bitmaps
• Not one bitmap for all records - sparse list of tagged bitmaps
• Each bitmap is tagged with its starting row key
• No bitmap if records are too sparse
• One record takes at least 1 bit and at most 8 bytes
• You would have to create over 512 trillion records to reach the max
• 4 bytes average under 4 million records
• Creating and deleting records can have impact on performance
• Significant only when there are many sparse records
• Deleting all records from a table should recover initial performance
87. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Starting Record ID Records Bitmap
1 11111111111111111111111111111111
2 bytes 32 bits = 4 bytes
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
6 bytes total
88. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 4 5 7 9 10 11 12 14 15 16
Starting Record ID Records Bitmap
2 1011010111101111110110111011
2 bytes 28 bits = 4 bytes
17 18 19 21 22 24 25 26 28 29
6 bytes total
89. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 14 15 16
Starting Record ID Records Bitmap
2 1
17 1110110111011
4 bytes 1 + 13 bits = 3 bytes
17 18 19 21 22 24 25 26 28 29
7 bytes total
90. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Record List in Detail (simplified)
2 14
Starting Record ID Records Bitmap
2 1
17 1110110111011
4 bytes 1 + 13 bits = 1 + 2 bytes = 3 bytes
19 21 22 24 25 26 28 29
7 bytes total
91. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Startup Restoration & Page Level Locking
• New features of FileMaker Server 18
• FileMaker DevCon 2019 session:
Under the Hood Exploring FileMaker Server 18’s Performance Features [SHA06]
Mainly from the 43rd minute
• Enabled or disabled together
• Positive impact - User requests not waiting in queue
• When accessing different pages
• Negative impact - Change commits taking longer - there’s more to do
• Dedicated SSD for restoration log recommended
• Serious issues reported as of 18v2
• Temp file corruption
• Persistent lock on client disconnect
• Restoration not happening after killing fmserverd
92. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
93. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
94. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
95. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
96. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
97. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
98. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
99. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
100. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
101. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
102. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Page Level Locking in Detail
User 1
User 2
103. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Benchmarking Techniques
• Scripts
• 24U FM Bench
• Get ( CurrentTimeUTCMilliseconds )
• Calculations
• 24U FM Bench
• Toolbox_GetTimestamp (microseconds)
• Layouts & other
• Unstored calculations + OnTimer script trigger
• Binary Splitting
• Top Call Stats
• Network Link Conditioner
• NetworkMonitor Tool
104. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
Top Optimization Techniques
• Remove it if you don’t need it
• Script layouts
• Virtual List
• Perform Script On Server (or server-side queue)
• Pre-calculated summaries
• Simpler relationship graph
• Calculated text color instead of conditional formatting
• Card window instead of popover
• Avoid too many button bars
• Sort portal instead of relationship
• New table with fewer fields
• Conditional Set Field
• Transactions (Look for Todd Geist’s articles and videos)
• Local File Editing (“Being Optimist in Pesimistic World” by Vince Menanno)
105. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
FileMaker Performance Update 2019 | HOnza Koudelka
More resources
• FileMaker Community > Search for Performance
• FileMaker DevCon Session Recordings, especially Under The Hood sessions (youtube.com/claris)
• Skeleton Key: “Improving FileMaker Custom App Performance” (https://youtu.be/D7LmguEcStY)
• FileMaker Transactions by Todd Geist (ModularFileMaker.org)
• “Decreasing FileMaker Network Traffic” by Vince Menanno (FileMakerProGurus.com)
• FileMaker Optimizers LinkedIn Group (FMOptimizers.com)
• 24U FM Bench (FMBench.com)
• Big-O Cheat Sheet (bigocheatsheet.com)
• A Gentle Introduction to Algorithm Complexity Analysis (discrete.gr/complexity/)
• Enabling HTTPS Without Sacrificing Your Web Performance by Billy Hoffmann
(https://zoompf.com/blog/2014/12/optimizing-tls-handshake/)
• AWS CPU Credits and Baseline Performance for Burstable Performance Instances
(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html)
• Ask for consultation at honza@24uSoftware.com or 24usw.com/consult