24-Appendix-PEPATT.ppt_第1页
24-Appendix-PEPATT.ppt_第2页
24-Appendix-PEPATT.ppt_第3页
24-Appendix-PEPATT.ppt_第4页
24-Appendix-PEPATT.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(Appendix)PerformanceEnhancingPatterns,Objectives,Aftercompletingthislesson,youshouldbeableto:UnderstandafewperformanceenhancingpatternsandAntiPatternsUnderstandafewgeneraldesignconsiderationsUnderstandafewnewtechnologiesthatcanhaveanimpactonperformanceWorkwithaHSQLdatabase,RoadMap,DesignPatternsAntiPatternsGeneralDesignTipsNewTechnologiesHSQLDatabase,DesignPatterns,ArearepeatableprocessordesignaddressingaspecificissueorprobleminthedevelopmentofasystemArepredictableintheirfunctionandareconsistentintheirprosandconsAreconceptsthatallowforacommonmethodtoquicklyandeffectivelycommunicatecomplexideologytoothersAllowfortheacceleratededucationoftheconceptforthosenewtoitAddresstheissueofreinventingthewheel,FastPath,ImprovestheresponsetimebyreducingtheamountofprocessingrequiredtoaccessmainfunctionalityIsanalogoustotheconceptofalocaltrainandanexpresstrainExamples:Providedefaultswhenauserdoesnotwanttogothroughthedetailsofeachstepinaconfigurationwizard.Avoidprotocolencodingforamessageonasocketconnectiontoaprocessonthesamecomputer.,FirstThingsFirst,Focusonprocessingtasksthatareimportant.Ifeverythingcannotbecompletedwithinthetimeavailable,thentheleastimportanttaskswillbetheonesomitted.Assignprioritiestotasksandexecutethemsothatthemostimportantactivitiesreceivepreference.Iftheoverloadisnottemporary,reducetheamountofprocessingrequired,orupgradetheprocessingenvironment.,AlternateRoutes,SpreadthedemandforhighusageobjectstodifferentobjectsorlocationsReducecontentiondelaysfortheobjectsAreacommonoccurrenceinDBsystemsUseahashingalgorithmfordate-timestampHavedifferentkeyassignmentsAccessdifferenttablesastheupdatesareexecutedReducedelaysduetoserializationReducevariabilityinperformance,FlexTime,PushesthedemandforhighusageobjectstoadifferentperiodoftimeReducescontentiondelaysforobjectsComplementsthealternateroutespatternReducesthetimethatprocesseswaitinqueuesMakesurethateveryrequestdoesnotchoosethesamealternatetime!MayactuallyrequiremoreprocessingProducingreportsaheadofscheduleandstoringuntilneeded,Batching,Combinesfrequentrequestsforservicestosavetheoverheadofinitialization,transmission,andterminationprocessingfortherequestCombinesrequestsintobatchessothattheoverheadprocessingisexecutedoncefortheentirebatchinsteadofforeachindividualitemIsperformedbythesenderorreceiveroftherequestReducesprocessingbygettingabatchofmessagestoprocessratherthanoneatatime,SlenderCyclicFunctions,AreusedwhenprocessingmustexecuteatregularintervalsArecommoninembeddedreal-timesystemsUsesensorreadingsGeneratereportsArchivedataIdentifythefunctionsthatexecuterepeatedlyatregular,specifictimeintervals,andminimizetheirprocessingrequirementsExample:archivingdatafromaRAMmemorybanktoaDBInstrumentsystemsandmonitortheirperformanceovertimefortheearlywarningofpotentialproblems,FastLaneReader,Providesamoreefficientwaytoaccessread-onlydatafromadatabaseMakesuseofaDataAccessObject(DAO)toaccessthedatabaseinsteadoftransactionalEJBsAvoidstheoverheadofEJBsandtheEJBcontainerDesignyourDAOsothatitcanbetailoredtoreturnonlywhatyouneed,andlimitthenumberofrowsreturned.Shouldnotbeusedwhenthedatabeingaccessedchangesrapidlyorwhenthetoleranceforslightlystaledataisverysmallbecausethereisariskofthedatabeingstale,SectionSummary,Inthissection,youlearnedabout:FastpathFirstthingsfirstAlternateroutesFlextimeBatchingSlendercyclicfunctionsFastlanereader,RoadMap,DesignPatternsAntiPatternsGeneralDesignTipsNewTechnologiesHSQLDatabase,AntiPatterns,DocumentcommonmistakesmadeduringsoftwaredevelopmentaswellastheirsolutionsTellhowtogofromaproblemtoabadsolutionwhatnottodoTellhowtogofromabadsolutiontoagoodsolutionthemeanstoturnaroundThepresenceoftheseAntiPatternspresentssignificantlimitstoscalabilityandperformance.,ExcessiveDynamicAllocation,Withdynamicallocation,objectsarecreatedwhentheyarefirstaccessedandthendestroyedwhentheyarenolongerneeded.Thiscanoftenbeagoodapproachtostructuringasystem,providingflexibilityinhighlydynamicsituations.Excessivedynamicallocation,however,addressesthefrequent,unnecessarycreationanddestructionofobjectsofthesame.Lazyloadingofobjectsandcachingcanhelpminimizeexcessivedynamicallocation.,CircuitousTreasureHunt,Dataretrievedfromafirsttableisusedtosearchasecondtable.Thisdataisfurtherusedtoretrievedatafromanothertableandsoonuntilthefinalresultsareobtained.Performanceimpactistheextraprocessingrequiredtoidentifythefinaloperationtobecalledandinvokingit.Indistributedobjectsystemsthiscanbeworse,whereobjectsmayresideinotherprocessesandonotherprocessors.Whentheinvocationcausestheintermediateobjectstobecreatedanddestroyed,theperformanceimpactisgreater.Eachcontextswitchmaycausetheworkingsetofthecalledobjecttobeloaded.,One-LaneBridge,ThesoftwareanalogytotheOneLaneBridgeisapointintheexecutionwhereoneoronlyafewprocessesmaycontinuetoexecuteconcurrently.Allotherprocessesmustwait.Indatabaseapplications,alockensuresthatonlyoneprocessmayupdatetheassociatedportionofthedatabaseatatime.Usingasynchronizedthreadblockwillcreatesuchasituation.,UnnecessaryProcessing,Thesoftwareapplicationspendstimeinprocessingseveralstepsthatcanbeeliminated.Excessiveloggingisagoodexampleofunnecessaryprocessing.,SisyphusListSubset,ThisisbasedontheGreekmythofSisyphuswhowasdamnedforalleternitytopushastoneupahillonlytowatchitrollbackdownagain.Theentirelistisfirstretrieved,fromwhichasubsetislaterextracted.Thisprocessisrepeatedoverandoveragain.,ThegodClass,Agodclassisonethatperformsmostoftheworkofthesystem,relegatingotherclassestominor,supportingroles.Thiscouldimpactperformance,asthisclassbecomesthecentralpointofprocessingbothbusinesslogicaswellasdata.Thegodclass,inmostcases,becomesverydifficulttomaintain.,SectionSummary,Inthissection,youlearnedabout:ExcessivedynamicallocationCircuitoustreasurehuntOnelanebridgeUnnecessaryprocessingSisyphuslistsubsetThegodclass,RoadMap,DesignPatternsAntiPatternsGeneralDesignTipsNewTechnologiesHSQLDatabase,Exceptions,Throwingexceptionsisexpensiveasitconsumesbothprocessingaswellasmemory.Dontthrowexceptionswhenyoudonthaveto.,Logging,MakesureyourapplicationisnotdoingtoomuchstandardI/Oorexcessivelogging.Eithersituationcouldsignificantlyslowsystemperformance.Inproductionenvironments,removeallSystem.out.println()statementsfromyourcode,asthesestatementsshouldbeusedonlyindevelopmentenvironmentsfordebugging.,SectionSummary,Inthissection,youlearnedafewgeneraldesigntips.,RoadMap,DesignPatternsAntiPatternsGeneralDesignTipsNewTechnologiesHSQLDatabase,NewTechnologies,Inthelastfewyearstherehavebeenawidearrayoftechnologiesthathavematured.Someofthesehelpimprovetheperformanceofsoftwaresystemsindifferentways.Wewillexamineafewoftheseinthenextfewslides.HibernateAJAXXMLstreaming,Hibernate,Isapowerful,highperformanceobject/relationalpersistenceandqueryserviceLetsyoudeveloppersistentclassesfollowingobject-orientedidiomsAssociationInheritancePolymorphismCompositionCollections,Hibernate,AllowsyoutoexpressqueriesinitsownportableSQLextension(HQL),aswellasinnativeSQL,orwithobject-orientedcriteriaImplementscertainoptimizationsmuchmoreefficientlythantypicalhandwrittenJDBCCachingOuterjoinassociationfetchingJDBCbatchingandsoonResultsinahugereductionincodeandanenormousincreaseinperformance,AJAX,StandsforAsynchronousJavaScriptAndXMLIsatechniqueusedtobuildrichinteractiveWebapplicationsIncreasestheWebpagesinteractivity,speed,andusabilitybyexchangingsmallamountsofdatawiththeserverbehindthescenesDoesnotrequirethattheentireWebpagebereloadedeachtimetheusermakesachange,AJAX,MakesusersfeelthatWebpagesaremoreresponsiveAfewexamplesinclude:GoogleMaps()AppleStore()KayakTravelSearch(),XMLProcessing,XMLprocessingcanbeanexpensiveoperation.DOMparsers,thoughveryeasytouse,arenotonlymemoryintensive,butcanalsobeslow,especiallyforlargedocuments.WithSimpleAPIforXML(SAX)parsers,theprogrammustcreateeventlistenersthatlistentoparsingeventsastheyoccur.XMLparserstendtobeabusedmoreoften.Heavy-dutyXMLparsingtoparseacomparativelysmallamountofdataXMLStreamingcanimproveperformance,especiallywhendealingwithlargeXMLdocuments.,XMLStreaming,ProvidesaneasyandintuitivewaytoparseandgenerateXMLdocumentsEnablesaprocedural,stream-basedhandlingofXMLdocumentsratherthanrequiringyoutowriteSAXeventhandlers,whichcangetcomplicatedwhenyouworkwithcomplexXMLdocumentsIsaJava-basedAPIforpullparsingXMLasopposedtopushparsingXMLpullparsersareknownfortheirsuperiorperformanceandlowmemoryfootprint.,SectionSummary,Inthissection,youlearnedabout:HibernateAJAXXMLStreaming,RoadMap,DesignPatternsAntiPatternsGeneralDesignTipsNewTechnologiesHSQLDatabase,Introduction,HSQLisanopensourcerelationaldatabaseenginewritteninJava.Itoffersalightweightandfastdatabaseengine,whichoffersbothin-memoryanddisk-basedtablesandsupportsembeddedandservermodes.ItincludestoolssuchasaminimalWebserver,in-memoryquery,andmanagementtools(canberunasapplets).ThelatestHSQLdatabasecanbedownloadedfrom.,Components,ThecomponentsoftheHsqldbJARpackageare:HSQLRDBMSHSQLJDBCdriverDatabaseManager(SwingandAbstractWindowToolkit(AWT)versions)Querytool(AWT)SQLtool(commandline)TheHSQLRDBMSandJDBCdriverprovidethecorefunctionality.,ServerModes,HSQLhasseveralservermodes,basedontheprotocolusedforcommunicationsbetweentheclientandserver.HsqldbServerHsqldbWebServerHsqldbServletIn-Process(Standalone)Memory-OnlyAdifferentsubprogramfromtheJARisusedtorunHSQLineachmode.,HSQLServerMode,Itisthepreferredwayofrunningadatabaseserverandthefastestone.Aproprietarycommunicationsprotocolisusedforthismode.ThecommandtorunHSQLinservermodefordatabasexdbisasfollows:,java-cp./lib/hsqldb.jarorg.hsqldb.Server-database.0mydb-dbname.0 xdb,HSQLWebServer,ThismodeisusedwhenaccesstothecomputerhostingthedatabaseserverisrestrictedtotheHTTPprotocol.ThismodeallowsJDBCclientstoconnectviaHTTP.ThecommandtoruntheHSQLinWebServermodefordatabasexdbisasfollows:,java-cp./lib/hsqldb.jarorg.hsqldb.WebServer-database.0mydb-dbname.0 xdb,HSQLDBServlet,hsqlServletusesthesameprotocolastheWebServer.Itisusedwhenaseparateservletengineorapplicationserverprovidesaccesstothedatabase.ThehsqlServletclass,inthehsqldb.jar,shouldbeinstalledontheapplicationservertoprovidetheconnection.Thedatabaseisspecifiedusinganapplicationserverproperty.,In-Process(Standalone)Mode,ThismoderunsthedatabaseengineaspartofanapplicationprograminthesameJVM.Formostapplications,thismodecanbefaster,asthedataisnotconvertedandsentoverthenetwork.Itisnotpossiblebydefaulttoconnecttothedatabasefromoutsidetheapplication.TheCommandtoconnecttoHSQLinthein-processmodeisasfollows:,Connectionc=DriverManager.getConnection(jdbc:hsqldb:file:testdb,“username,“password);,Memory-OnlyMode,Formemory-onlymode,thedatabaseisnotpersistentandexistsentirelyinrandomaccessmemory.Thismodeshouldbeusedonlyforinternalprocessingofapplicationdata,inappletsorcertainspecialapplications.Thismodeisspecifiedbythemem:protocol.ThecommandtoconnecttoHSQLinmemory-onlymodeisasfollows:,Connectionc=DriverManager.getConnection(jdbc:hsqldb:mem:aname,“username,“password);,HSQLDatabaseFiles,EachHSQLdatabaseconsistsofbetweentwotofivefiles,allnamedthesamebutwithdifferentextensions,locatedinthesamedirectory.Forexample,thedatabasenamedtestconsistsofthefollowingfiles:perties:Thepropertiesfilecontainsgeneralsettingsaboutthedatabase.test.script:Thescriptfilecontainsthedefinitionoftablesandotherdatabaseobjects,plusthedatafornon-cachedtables.test.log:Thelogfilecontainsrecentchangestothedatabase.test.data:Thedatafilecontainsthedataforcachedtables.test.backup:Thisprovidesdatabackup.,ConnectingtoaDatabase,OnceanHSQLDBserverisrunning,clientprogramscanconnecttoitusingtheHSQLDBJDBCdrivercontainedinhsqldb.jar.ThefollowingisanexampleJavacodetoconnecttothelocalserverrunningondefaultport9001.,Class.forName(org.hsqldb.jdbcDriver);Connectionc=DriverManager.getConnection(jdbc:hsqldb:hs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论