SlideShare a Scribd company logo
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
www.filemaker-konferenz.com
Performance Questions & Test Results
HOnza Koudelka
FileMaker 17 Performance Lab
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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, and 17
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 & 2017 speaker
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Agenda
• FileMaker 17 Automated Test Results
• Recent Discoveries
• Benchmarking Techniques
• Optimization Techniques
• Questions & Answers
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Why Performance Lab?
• Perceived speed defines what’s important
• Technical speed makes things possible
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Faster is not always better
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Test Equipment
• Mac Pro (early 2008)
• 2 x 2,8 GHz Intel Xeon
• 8 GB RAM
• Separate hard drive for data
• macOS 10.13 High Sierra
• FileMaker Server versions 15, 16, 17
• FileMaker Pro Advanced 12, 13, 14, 15, 16, 17
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Automated tests performed
• 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)
159
858
tests
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Manually tested
• Spider vs Anchor/Buoy vs Selector-Connector
• Container vs text
• Structure impact on Set Field performance
• Slow network impact
• Layout rendering
• Conditional formatting
• Relationship sorting
• Data API vs PHP API
NEW
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
What was NOT tested
• 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 (except for Data API vs PHP API)
• Server-side schedules, including backup schedules
• Different cache sizes and other configuration differences
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
FileMaker 17 Test Results
12 13 14 15 16
? ?
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Sorting records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Performing Find in a simple table
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Batch-modifying records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Batch-modifying records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Batch-modifying records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Batch-modifying records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
FMSE shares resources with FMS
Indexed Unindexed
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Recent Discoveries
• Spider vs Anchor/Buoy vs Selector-Connector
• Container vs text (danger of Base64)
• Structure impact on Set Field performance
• Slow network impact
• Layout rendering
• Expensive objects
• Conditional formatting
• Relationship sorting
• Data API vs PHP API
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Spider vs Anchor/Buoy vs Selector-Connector
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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?
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Real solution test
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
After conversion to Anchor/Buoy
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
After adding Selector-Connector
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Time to Perform Script on Server
Spider Anchor/Buoy Selector
Connector
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Beware Base64
• Real experience from a customer
• Huge containers can be stored as text
• Doing so can have fatal impact on performance
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
• 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
• 1037 relationships
• 1004 in this TOG
• 690 around this TO
• 7 hops longest path
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
1037
1116 1194
7516
9701
Total number
of relationships
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Insanely slow Set Field
• 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
• Thanks to Clay Maeckel for this under-the-hood info
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Slow network impact
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Top Factors
• Bandwidth - amount of data transferred
• Latency - number of calls
• Packet Loss / Stability - persistency, online vs synchronization
• Examine with Network Link Conditioner & Top Call Stats
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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)
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Recent optimization - 24U Collector
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Recent optimization - 24U Collector
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
• Toolbox_GetTimestamp
• Benchmarks in global variable
• OnTimer script trigger
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
• 8 conditional formatting rules
• 31 columns
• 29 records
• 8 x 31 x 29 = 7192
• Little chance to optimize time
per calc, it is necessary to
optimize their count
• Almost 7 seconds before
starting to evaluate conditional
formatting due to button bars &
popovers
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Layout rendering
• Repeating text field replaced button bar (86.8 % saved)
• TextColor replaced conditional formatting
• Optimized condition calculation
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Data API vs PHP API
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Data API vs PHP API
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Data API vs PHP API
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
WPE after trying to fetch 300k records
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | 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 Performance”
• 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/)
• Ask for consultation at honza@24uSoftware.com or 24usw.com/consult
9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
FileMaker 17 Performance Lab | HOnza Koudelka
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages

More Related Content

Similar to FMK2018- FileMaker 17 Performance lab HOnza Koudelka

FMK2014 FileMaker Performance Under the Hood by Jon Thatcher
FMK2014 FileMaker Performance Under the Hood by Jon ThatcherFMK2014 FileMaker Performance Under the Hood by Jon Thatcher
FMK2014 FileMaker Performance Under the Hood by Jon Thatcher
Verein FM Konferenz
 
Building reliable apps with cdk
Building reliable apps with cdkBuilding reliable apps with cdk
Building reliable apps with cdk
RaphaelManke1
 
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
DB Services
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)
Contrext Solutions
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
MysoreMuleSoftMeetup
 
Ruby in office time reboot
Ruby in office time rebootRuby in office time reboot
Ruby in office time reboot
Kentaro Goto
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
 
HDF Status and Development
HDF Status and DevelopmentHDF Status and Development
HDF Status and Development
The HDF-EOS Tools and Information Center
 
FOSSology & GSOC Journey
FOSSology & GSOC JourneyFOSSology & GSOC Journey
FOSSology & GSOC Journey
Gaurav Mishra
 
DPDK FPGA with Atomic Rules Arkville
DPDK FPGA with Atomic Rules ArkvilleDPDK FPGA with Atomic Rules Arkville
DPDK FPGA with Atomic Rules Arkville
Shepard Siegel
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
Chris Tankersley
 
INTER-Mediator 5.7とFileMaker Data API (Trial)
INTER-Mediator 5.7とFileMaker Data API (Trial)INTER-Mediator 5.7とFileMaker Data API (Trial)
INTER-Mediator 5.7とFileMaker Data API (Trial)
Atsushi Matsuo
 
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
SDL
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- Workshop
Tom Johnson
 
FMK2017 - Tableau and FileMaker by Vince Menanno
FMK2017 - Tableau and FileMaker by Vince MenannoFMK2017 - Tableau and FileMaker by Vince Menanno
FMK2017 - Tableau and FileMaker by Vince Menanno
Verein FM Konferenz
 
fmcsadmin CLI for FileMaker Admin API (Trial)
fmcsadmin CLI for FileMaker Admin API (Trial)fmcsadmin CLI for FileMaker Admin API (Trial)
fmcsadmin CLI for FileMaker Admin API (Trial)
Atsushi Matsuo
 
New Process/Thread Runtime
New Process/Thread Runtime	New Process/Thread Runtime
New Process/Thread Runtime
Linaro
 
FMK2017 - Modularity in FileMaker 16 by Russell Watson
FMK2017 - Modularity in FileMaker 16 by Russell WatsonFMK2017 - Modularity in FileMaker 16 by Russell Watson
FMK2017 - Modularity in FileMaker 16 by Russell Watson
Verein FM Konferenz
 
Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6 Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6
XeniT Solutions nv
 
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case studyOSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
NETWAYS
 

Similar to FMK2018- FileMaker 17 Performance lab HOnza Koudelka (20)

FMK2014 FileMaker Performance Under the Hood by Jon Thatcher
FMK2014 FileMaker Performance Under the Hood by Jon ThatcherFMK2014 FileMaker Performance Under the Hood by Jon Thatcher
FMK2014 FileMaker Performance Under the Hood by Jon Thatcher
 
Building reliable apps with cdk
Building reliable apps with cdkBuilding reliable apps with cdk
Building reliable apps with cdk
 
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
2020 and Beyond: Navigating Claris Transformations & Innovations Post-Pandemic
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
 
Ruby in office time reboot
Ruby in office time rebootRuby in office time reboot
Ruby in office time reboot
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
HDF Status and Development
HDF Status and DevelopmentHDF Status and Development
HDF Status and Development
 
FOSSology & GSOC Journey
FOSSology & GSOC JourneyFOSSology & GSOC Journey
FOSSology & GSOC Journey
 
DPDK FPGA with Atomic Rules Arkville
DPDK FPGA with Atomic Rules ArkvilleDPDK FPGA with Atomic Rules Arkville
DPDK FPGA with Atomic Rules Arkville
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
INTER-Mediator 5.7とFileMaker Data API (Trial)
INTER-Mediator 5.7とFileMaker Data API (Trial)INTER-Mediator 5.7とFileMaker Data API (Trial)
INTER-Mediator 5.7とFileMaker Data API (Trial)
 
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
SDL's Vision for Globalization - Maxwell Hoffman at SDL Connect 16
 
Publishing API documentation -- Workshop
Publishing API documentation -- WorkshopPublishing API documentation -- Workshop
Publishing API documentation -- Workshop
 
FMK2017 - Tableau and FileMaker by Vince Menanno
FMK2017 - Tableau and FileMaker by Vince MenannoFMK2017 - Tableau and FileMaker by Vince Menanno
FMK2017 - Tableau and FileMaker by Vince Menanno
 
fmcsadmin CLI for FileMaker Admin API (Trial)
fmcsadmin CLI for FileMaker Admin API (Trial)fmcsadmin CLI for FileMaker Admin API (Trial)
fmcsadmin CLI for FileMaker Admin API (Trial)
 
New Process/Thread Runtime
New Process/Thread Runtime	New Process/Thread Runtime
New Process/Thread Runtime
 
FMK2017 - Modularity in FileMaker 16 by Russell Watson
FMK2017 - Modularity in FileMaker 16 by Russell WatsonFMK2017 - Modularity in FileMaker 16 by Russell Watson
FMK2017 - Modularity in FileMaker 16 by Russell Watson
 
Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6 Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6
 
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case studyOSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
OSMC 2021 | Handling 250K flows per second with OpenNMS: a case study
 

More from Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
Verein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
Verein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
Verein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
Verein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
Verein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
Verein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
Verein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
Verein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
Verein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
Verein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
Verein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
Verein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
Verein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
Verein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
Verein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
Verein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
Verein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
Verein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Verein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
Verein FM Konferenz
 

More from Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 

Recently uploaded

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 

Recently uploaded (20)

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 

FMK2018- FileMaker 17 Performance lab HOnza Koudelka

  • 1. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 www.filemaker-konferenz.com Performance Questions & Test Results HOnza Koudelka FileMaker 17 Performance Lab
  • 2. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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, and 17 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 & 2017 speaker
  • 3. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Agenda • FileMaker 17 Automated Test Results • Recent Discoveries • Benchmarking Techniques • Optimization Techniques • Questions & Answers
  • 4. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Why Performance Lab? • Perceived speed defines what’s important • Technical speed makes things possible
  • 5. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Faster is not always better
  • 6. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Test Equipment • Mac Pro (early 2008) • 2 x 2,8 GHz Intel Xeon • 8 GB RAM • Separate hard drive for data • macOS 10.13 High Sierra • FileMaker Server versions 15, 16, 17 • FileMaker Pro Advanced 12, 13, 14, 15, 16, 17
  • 7. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Automated tests performed • 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) 159 858 tests
  • 8. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Manually tested • Spider vs Anchor/Buoy vs Selector-Connector • Container vs text • Structure impact on Set Field performance • Slow network impact • Layout rendering • Conditional formatting • Relationship sorting • Data API vs PHP API NEW
  • 9. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka What was NOT tested • 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 (except for Data API vs PHP API) • Server-side schedules, including backup schedules • Different cache sizes and other configuration differences
  • 10. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka FileMaker 17 Test Results 12 13 14 15 16 ? ?
  • 11. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Sorting records
  • 12. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Performing Find in a simple table
  • 13. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Batch-modifying records
  • 14. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Batch-modifying records
  • 15. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Batch-modifying records
  • 16. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Batch-modifying records
  • 17. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka FMSE shares resources with FMS Indexed Unindexed
  • 18. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Recent Discoveries • Spider vs Anchor/Buoy vs Selector-Connector • Container vs text (danger of Base64) • Structure impact on Set Field performance • Slow network impact • Layout rendering • Expensive objects • Conditional formatting • Relationship sorting • Data API vs PHP API
  • 19. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Spider vs Anchor/Buoy vs Selector-Connector
  • 20. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 21. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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?
  • 22. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Real solution test
  • 23. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 24. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka After conversion to Anchor/Buoy
  • 25. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka After adding Selector-Connector
  • 26. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Time to Perform Script on Server Spider Anchor/Buoy Selector Connector
  • 27. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Beware Base64 • Real experience from a customer • Huge containers can be stored as text • Doing so can have fatal impact on performance
  • 28. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field • 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
  • 29. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field
  • 30. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field • 1037 relationships • 1004 in this TOG • 690 around this TO • 7 hops longest path
  • 31. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field
  • 32. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field
  • 33. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field
  • 34. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field
  • 35. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field 1037 1116 1194 7516 9701 Total number of relationships
  • 36. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Insanely slow Set Field • 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 • Thanks to Clay Maeckel for this under-the-hood info
  • 37. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Slow network impact
  • 38. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 39. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Top Factors • Bandwidth - amount of data transferred • Latency - number of calls • Packet Loss / Stability - persistency, online vs synchronization • Examine with Network Link Conditioner & Top Call Stats
  • 40. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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)
  • 41. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Recent optimization - 24U Collector
  • 42. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Recent optimization - 24U Collector
  • 43. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering
  • 44. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering
  • 45. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering
  • 46. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering • Toolbox_GetTimestamp • Benchmarks in global variable • OnTimer script trigger
  • 47. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering • 8 conditional formatting rules • 31 columns • 29 records • 8 x 31 x 29 = 7192 • Little chance to optimize time per calc, it is necessary to optimize their count • Almost 7 seconds before starting to evaluate conditional formatting due to button bars & popovers
  • 48. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering
  • 49. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Layout rendering • Repeating text field replaced button bar (86.8 % saved) • TextColor replaced conditional formatting • Optimized condition calculation
  • 50. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 51. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Data API vs PHP API
  • 52. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Data API vs PHP API
  • 53. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Data API vs PHP API
  • 54. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka WPE after trying to fetch 300k records
  • 55. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 56. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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
  • 57. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | 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 Performance” • 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/) • Ask for consultation at honza@24uSoftware.com or 24usw.com/consult
  • 58. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018 FileMaker 17 Performance Lab | HOnza Koudelka Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages