已阅读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年生物医药行业基因编辑技术研究报告及未来发展趋势预测
- 2025年智慧农业行业农业物联网技术在农业生产中的应用研究报告及未来发展趋势预测
- 2025年智能交付行业智能物流配送解决方案研究报告及未来发展趋势预测
- 2025年环保科技在企业可持续发展中的作用研究报告及未来发展趋势预测
- 2025年时尚服装行业可持续发展实践研究报告及未来发展趋势预测
- 2025年游乐设备行业游乐设备安全与儿童乐园设计研究报告及未来发展趋势预测
- 2025年智能硬件行业可穿戴设备应用趋势研究报告及未来发展趋势预测
- 家庭亲情写人记事作文4篇
- 23年-竞业协议范本
- 高中语文北师大(必修3)第四单元课件:第12课《论睁了眼看》
- 退伍军人个人简历模板-军队转业干部简历模板下载(Word格式)-169
- 贴片二三极管封装图大全
- 幼儿园大班教案《一分钱》
- 中小学儿童德育教育正确面对挫折含内容两篇
- 物业公司中央空调运行记录表
- MySQL数据库PPT完整全套教学课件
- 消毒供应中心应急预案
- 小洋葱大作战【经典绘本】
- 岩石破裂数值方法
评论
0/150
提交评论