已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 非甾体抗炎镇痛药市场深度评估与发展趋势预测报告(定制版)2025
- 2025年成都百万职工技能大赛(网约配送员)备赛试题库(含答案)
- 2025-2026学年北京市海淀区中关村中学高二(上)期中语文试卷
- 2025年中药学类之中药学(士)练习题(二)及答案
- 石坝秸秆饲料加工:惠州农业废弃物增值与养殖成本降低实践 -2026 届高三语文主题读写素材 11 月热点时事写作素材
- 2025年鸡西辅警协警招聘考试真题带答案详解(完整版)
- 2025年那曲辅警协警招聘考试真题含答案详解(b卷)
- 2025年甘孜藏族自治州辅警招聘考试题库附答案详解(巩固)
- 2025年黄山辅警招聘考试真题含答案详解(b卷)
- 2025年淮北辅警招聘考试真题附答案详解(达标题)
- 23年-竞业协议范本
- 高中语文北师大(必修3)第四单元课件:第12课《论睁了眼看》
- 退伍军人个人简历模板-军队转业干部简历模板下载(Word格式)-169
- 贴片二三极管封装图大全
- 幼儿园大班教案《一分钱》
- 中小学儿童德育教育正确面对挫折含内容两篇
- 物业公司中央空调运行记录表
- MySQL数据库PPT完整全套教学课件
- 消毒供应中心应急预案
- 小洋葱大作战【经典绘本】
- 岩石破裂数值方法
评论
0/150
提交评论