code: function getDimCount(source, sysDims, dimsDef, optDimCount) {
      // Note that the result dimCount should not small than columns count
      // of data, otherwise `dataDimNameMap` checking will be incorrect.
      var dimCount = Math.max(
          source.dimensionsDetectCount || 1,
          sysDims.length,
          dimsDef.length,
          optDimCount || 0
      );
      each(sysDims, function (sysDimItem) {
          var sysDimItemDimsDef = sysDimItem.dimsDef;
          sysDimItemDimsDef && (dimCount = Math.max(dimCount, sysDimItemDimsDef.length));
      });
      return dimCount;
  }
docs: ??? TODO Originally detect dimCount by data[0]. Should we optimize it to only by sysDims and dimensions and encode. So only necessary dims will be initialized. But (1) custom series should be considered. where other dims may be visited. (2) sometimes user need to calcualte bubble size or use visualMap on other dimensions besides coordSys needed. So, dims that is not used by system, should be shared in storage?