[ https://issues.apache.org/jira/browse/HIVE-5018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Jakobus updated HIVE-5018: ----------------------------------- Description: Object instantiation inside loops is very expensive. Where possible, object references should be created outside the loop so that they can be reused. (was: java/org/apache/hadoop/hive/ql/Context.java java/org/apache/hadoop/hive/ql/Driver.java java/org/apache/hadoop/hive/ql/QueryPlan.java java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java java/org/apache/hadoop/hive/ql/exec/DDLTask.java java/org/apache/hadoop/hive/ql/exec/DefaultBucketMatcher.java java/org/apache/hadoop/hive/ql/exec/DemuxOperator.java java/org/apache/hadoop/hive/ql/exec/ExplainTask.java java/org/apache/hadoop/hive/ql/exec/ExprNodeGenericFuncEvaluator.java java/org/apache/hadoop/hive/ql/exec/FetchOperator.java java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java java/org/apache/hadoop/hive/ql/exec/JoinUtil.java java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java java/org/apache/hadoop/hive/ql/exec/MapOperator.java java/org/apache/hadoop/hive/ql/exec/MoveTask.java java/org/apache/hadoop/hive/ql/exec/MuxOperator.java java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java java/org/apache/hadoop/hive/ql/exec/PTFPersistence.java java/org/apache/hadoop/hive/ql/exec/PartitionKeySampler.java java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java java/org/apache/hadoop/hive/ql/exec/SMBMapJoinOperator.java java/org/apache/hadoop/hive/ql/exec/ScriptOperator.java java/org/apache/hadoop/hive/ql/exec/SkewJoinHandler.java java/org/apache/hadoop/hive/ql/exec/StatsTask.java java/org/apache/hadoop/hive/ql/exec/TaskFactory.java java/org/apache/hadoop/hive/ql/exec/UDFArgumentException.java java/org/apache/hadoop/hive/ql/exec/UnionOperator.java java/org/apache/hadoop/hive/ql/exec/Utilities.java java/org/apache/hadoop/hive/ql/exec/errors/RegexErrorHeuristic.java java/org/apache/hadoop/hive/ql/exec/errors/ScriptErrorHeuristic.java java/org/apache/hadoop/hive/ql/exec/errors/TaskLogProcessor.java java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java java/org/apache/hadoop/hive/ql/exec/mr/ExecReducer.java java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java java/org/apache/hadoop/hive/ql/exec/mr/JobDebugger.java java/org/apache/hadoop/hive/ql/exec/mr/MapRedTask.java java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java java/org/apache/hadoop/hive/ql/exec/mr/Throttle.java java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinObjectValue.java java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinRowContainer.java java/org/apache/hadoop/hive/ql/history/HiveHistory.java java/org/apache/hadoop/hive/ql/index/HiveIndexResult.java java/org/apache/hadoop/hive/ql/index/HiveIndexedInputFormat.java java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java java/org/apache/hadoop/hive/ql/index/bitmap/BitmapIndexHandler.java java/org/apache/hadoop/hive/ql/io/BucketizedHiveInputFormat.java java/org/apache/hadoop/hive/ql/io/CombineHiveInputFormat.java java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java java/org/apache/hadoop/hive/ql/io/NonSyncDataInputBuffer.java java/org/apache/hadoop/hive/ql/io/RCFile.java java/org/apache/hadoop/hive/ql/io/RCFileInputFormat.java java/org/apache/hadoop/hive/ql/io/SequenceFileInputFormatChecker.java java/org/apache/hadoop/hive/ql/io/SymbolicInputFormat.java java/org/apache/hadoop/hive/ql/io/SymlinkTextInputFormat.java java/org/apache/hadoop/hive/ql/io/orc/DynamicByteArray.java java/org/apache/hadoop/hive/ql/io/orc/DynamicIntArray.java java/org/apache/hadoop/hive/ql/io/orc/FileDump.java java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java java/org/apache/hadoop/hive/ql/io/rcfile/merge/BlockMergeTask.java java/org/apache/hadoop/hive/ql/io/rcfile/merge/RCFileMergeMapper.java java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateMapper.java java/org/apache/hadoop/hive/ql/lockmgr/EmbeddedLockManager.java java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java java/org/apache/hadoop/hive/ql/metadata/Hive.java java/org/apache/hadoop/hive/ql/metadata/HiveMetaStoreChecker.java java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java java/org/apache/hadoop/hive/ql/optimizer/AbstractSMBJoinProc.java java/org/apache/hadoop/hive/ql/optimizer/BucketingSortingReduceSinkOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java java/org/apache/hadoop/hive/ql/optimizer/GroupByOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/correlation/CorrelationOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/correlation/QueryPlanTreeTransformation.java java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java java/org/apache/hadoop/hive/ql/optimizer/index/RewriteGBUsingIndex.java java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndex.java java/org/apache/hadoop/hive/ql/optimizer/lineage/OpProcFactory.java java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java java/org/apache/hadoop/hive/ql/optimizer/physical/AbstractJoinTaskDispatcher.java java/org/apache/hadoop/hive/ql/optimizer/physical/BucketingSortingInferenceOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/physical/BucketingSortingOpProcFactory.java java/org/apache/hadoop/hive/ql/optimizer/physical/CommonJoinTaskDispatcher.java java/org/apache/hadoop/hive/ql/optimizer/physical/GenMRSkewJoinProcessor.java java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java java/org/apache/hadoop/hive/ql/optimizer/physical/MetadataOnlyOptimizer.java java/org/apache/hadoop/hive/ql/optimizer/physical/index/IndexWhereProcessor.java java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java java/org/apache/hadoop/hive/ql/optimizer/unionproc/UnionProcFactory.java java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/EximUtil.java java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/IndexUpdater.java java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/MapReduceCompiler.java java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java java/org/apache/hadoop/hive/ql/parse/WindowingComponentizer.java java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java java/org/apache/hadoop/hive/ql/plan/BucketMapJoinContext.java java/org/apache/hadoop/hive/ql/plan/ConditionalResolverCommonJoin.java java/org/apache/hadoop/hive/ql/plan/ConditionalResolverSkewJoin.java java/org/apache/hadoop/hive/ql/plan/FetchWork.java java/org/apache/hadoop/hive/ql/plan/HashTableSinkDesc.java java/org/apache/hadoop/hive/ql/plan/JoinDesc.java java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java java/org/apache/hadoop/hive/ql/plan/MapJoinDesc.java java/org/apache/hadoop/hive/ql/plan/MsckDesc.java java/org/apache/hadoop/hive/ql/plan/PTFDesc.java java/org/apache/hadoop/hive/ql/plan/PlanUtils.java java/org/apache/hadoop/hive/ql/plan/ReduceSinkDesc.java java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java java/org/apache/hadoop/hive/ql/ppd/PredicateTransitivePropagate.java java/org/apache/hadoop/hive/ql/session/CreateTableAutomaticGrant.java java/org/apache/hadoop/hive/ql/udf/UDAFPercentile.java java/org/apache/hadoop/hive/ql/udf/UDFJson.java java/org/apache/hadoop/hive/ql/udf/generic/AbstractGenericUDFEWAHBitmapBop.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFContextNGrams.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCumeDist.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFHistogramNumeric.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFNTile.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentRank.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFnGrams.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFEWAHBitmapEmpty.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFIn.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSentences.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFInline.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFJSONTuple.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFParseUrlTuple.java java/org/apache/hadoop/hive/ql/udf/generic/GenericUDTFStack.java java/org/apache/hadoop/hive/ql/udf/generic/NGramEstimator.java java/org/apache/hadoop/hive/ql/udf/generic/NumDistinctValueEstimator.java java/org/apache/hadoop/hive/ql/udf/generic/NumericHistogram.java java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java java/org/apache/hadoop/hive/ql/udf/xml/GenericUDFXPath.java) > Avoiding object instantiation in loops (issue 6) > ------------------------------------------------ > > Key: HIVE-5018 > URL: https://issues.apache.org/jira/browse/HIVE-5018 > Project: Hive > Issue Type: Sub-task > Reporter: Benjamin Jakobus > Assignee: Benjamin Jakobus > Priority: Minor > Fix For: 0.12.0 > > Attachments: HIVE-5018.1.patch.txt > > > Object instantiation inside loops is very expensive. Where possible, object > references should be created outside the loop so that they can be reused. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira