Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults by HOnza Koudelka

897 views

Published on

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!

Published in: Technology

FMK2017 - Latest FileMaker Pro & Server Performance Questions & Rest Tesults by HOnza Koudelka

  1. 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. 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. 3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka What does FAST look like?
  4. 4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka What does FAST look like?
  5. 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. 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. 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. 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. 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. 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. 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. 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. 13. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Exporting Records
  14. 14. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Importing Records
  15. 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. 16. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Sorting Records
  17. 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. 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. 19. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Deleting records
  20. 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. 21. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Batch-modifying records
  22. 22. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Batch-modifying records
  23. 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. 24. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Which Server? 14 15 16
  25. 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. 26. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Client or Server?
  27. 27. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Batch-modifying records
  28. 28. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka FMSE shares resources with FMS
  29. 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. 30. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka FMSE utilizes direct sockets
  31. 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. 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. 33. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Indexed vs Unindexed
  34. 34. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Sort Records 1 of 100 Unique
  35. 35. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Perform Find
  36. 36. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Spider vs Anchor/Buoy vs Selector-Connector nav_code NAV_selecte PREFS_org account_nam PREFS_user gTaskCont GLOBALS_to context TASKS EVT_sessions_to_session_signup g_Registrant_relationship_code NRRTS_PREFS_registrant_code fk_party_ID NRRTS_people_registrant_link AS_parent_organizations AS_branch_organizations AS_employees g_nav_code_ g_current_ac NAV_navigat AS_address_SHIP AS_address_PUBLISH AS_address_RENEW ethics DMERC_assignments NRRTS_PREFS pk_party_ID NRRTS_parties_by_registrant_link fk_party_ID fk_tag_ID PUB_tag_link_ad g_marketing_relatio… PUB_prefs_advertis… pk_party_ID PUB_advertiser_parties AS_organizations fk_party_ID PUB_advertiser_orgs fk_party_ID QUICKFIND_people_DMERC_display pk_tag_ID QUICKFIND_relationship_tags_display pk_party_ID QUICKFIND_parties_ADVERTISERS_display GLOBALS_to_parties AS_parties_receive_ad_invoice AS_SSNs AS_CCARDS PUB_publications GLOBALS_to_people globals FORMS_globa signatures_to_form_globals DISP_email_primary DISP_people_self_by_global globals_to_people_name_filter EVT_events EVT_fees EVT_sessions_to_events AS_parties_subordinates FON_apps_complimentary fon_parties_complimentary AS_voice_subordinates FON_ledger_to_enrollment PUB_ledger_expense PUB_ledger_all PUB_ad_rates PUB_ledger_income TAGS GLOBALS_to_event_session_signup AS_people PUB_comm_outgoing_PUSH AS_address_PHYSICAL FON_enrollment fk_event_ID fk_party_ID pk_registration_ID gUnique_key EVT_attendance AS_parties_parent FON_comm_outgoing_PUSH EVT_comm_outgoing_PUSH EVT_session_signup_to_attendance EVT_session_comm_outgoin… CECs NRRTS_Credentialing NRRTS_crts_history AS_parties_selfjoin AS_address_ALL AS_address_FILTERED AS_address_MAIL PUB_parties_invoice_recipient PUB_parties_ad_representative AS_email_ALL AS_email_PUBLISH AS_email_primary AS_phones_ALL AS_phones_office_voice AS_phones_office_fax AS_phones_home_fax AS_phone_voice_publish AS_phones_fax_publish AS_phone_tollfree_publish COMMUNICATIONS_outgoing AS_comm_outgoing_PUSH CODE128E TAG_LINKS_to_parties fk_party_ID fk_tag_ID NRRTS_tag_link_registrant FON_apps NRRTS_comm_outgoing_PUSH CEC_to_nrrts_apps_by_lookback_date GLOBALS_to_nrrts_apps_by_renew_date CEC_to_nrrts_apps_by_RESNA_effectiv… NRRTS_parties_DMERC NRRTS_ledger_to_apps NRRTS_apps_self NRRTS_app_recommend CEC_to_nrrts_apps_by_app_ID NRRTS_affiliations_to_current_app fk_registry_affiliation_ID is_current NRRTS_apps_CURRENT signature_graphics NRRTS_apps fk_registry_affiliation_ID reg_period_begin_date reg_period_end_date NRRTS_apps_by_date_range fk_party_ID pk_nrrts_registry_ID constant cCurrentDate NRRTS_affiliations fk_registry_affiliation_ID is_complete nrrts_apps_COMPLETE AS_address_RESIDENCE DMERC_people fk_3rd_party_adv_inv… fk_parent_party_ID pk_party_ID gLocation_display_key gUnique_key constant creator database_status fk_3rd_party_adv_inv… fk_parent_party_ID location_valueListBuil… member_code_OLD modifier AS_parties globals_to_letter_templates_CROSS DMERC_region_link AS_address_OFFICE PUB_advertising letter_templates fSignup_attend_ADDRESS_mail pk_party_ID constant fPARTY fAttend_ADDRESS_office CODE128E fAttend_PERSON fAttend_PARTY fAttend_EVENTS EVT_sessions_to_events EVT_fees fSignup_attend_PARTY fSignup_attend_EVENT fSignup_attend_EMAIL fSignup_attend_PERSON fSignup_attend_PHONE_office fSignup_attend_PHONE_fax fSignup_ATTEND fSignup_SESSIONS fRegistry_ADDRESS_mail fRegistry_NRRTSAPP fRegistry_nrrtsapp_PARTY_dmerc fRegistry_PERSON fNrrtsapp_EMAIL_primary fk_DMERC_ID fk_party_ID fk_registry_affiliatio… pk_app_ID is_current reg_period_begin_d… reg_period_end_date constant cApp_deadline_date cLookback_date fNRRTSAPP fk_party_ID pk_nrrts_registry_ID constant fREGISTRY fParty_PERSON fParty_ORG fParty_PHONE_office_voice fParty_PHONE_voice_publish fParty_PHONE_office_fax fParty_PHONE_fax_publish fParty_PHONE_home_fax fParty_EMAIL_primary fParty_EMAIL_publish fParty_ADDRESS_publish fParty_ADDRESS_renew fParty_ADDRESS_mail fParty_ADDRESS_ship fComm_PARTY fComm_PERSON fComm_ADDRESS_mail fComm_PHONE_office_fax fComm_PHONE_home_fax fFon_PARTY fFon_SELF_primary_comp fFon_SELF_comp fFon_party_PHONE_voice_publish fFon_party_EMAIL_publish fFon_party_ADDRESS_mail fFon_party_ADDRESS_publish fFon_party_PHONE_fax_publish fFon_PERSON fFon_fon_primary_comp_PARTY fFon_fon_comp_PARTY fFon_fon_primary_comp_A fFon_fon_primary_comp_P fNrrtsapp_PHONE_officeFax fNrrtsapp_ADDRESS_mail fNrrtsapp_ADDRESS_renew fNrrtsapp_PERSON fNrrtsapp_TAGLINK_dmerc fNnrrtsapp_PEOPLE_dmerc fNrrtsapp_REGISTRY fNrrtsapp_RECOMMEND fRegistry_PARTY fNrrtsapp_PARTY fk_party_ID pk_fon_affiliation_ID fFON fNrrtsapp_CEC_AppID fNrrtsapp_CEC_renewalDate fNrrtsapp_CEC_lookbackDate Enclosure fk_party_ID fCOMM fk_event_ID fk_party_ID pk_registration_ID constant fATTEND fNrrtsapp_SELF fk_registration_ID fk_session_ID fSIGNUP fComm_NRRTSAPP
  37. 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. 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. 39. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Real solution test
  40. 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. 41. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka After conversion to Anchor/Buoy
  42. 42. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka After adding Selector-Connector
  43. 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. 44. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Latest FMP/FMS Performance Questions & Test Results | HOnza Koudelka Under the Hood: Commit Notifications
  45. 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. 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. 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. 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. 49. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Vortrag und Sprecher Vielen Dank unseren Sponsoren

×