private void loadParameters() {
    Map<String, String> paramMap = _heuristicConfData.getParamMap();
    String heuristicName = _heuristicConfData.getHeuristicName();

    double[] confMemRatioLimits = Utils.getParam(paramMap.get(MEM_RATIO_SEVERITY), memRatioLimits.length);
    if (confMemRatioLimits != null) {
      memRatioLimits = confMemRatioLimits;
    }
    logger.info(heuristicName + " will use " + MEM_RATIO_SEVERITY + " with the following threshold settings: "
        + Arrays.toString(memRatioLimits));

    long containerMemDefaultBytes = getContainerMemDefaultMBytes() * FileUtils.ONE_MB;
    logger.info(heuristicName + " will use " + CONTAINER_MEM_DEFAULT_MB + " with the following threshold setting: "
            + containerMemDefaultBytes);

    double[] confMemoryLimits = Utils.getParam(paramMap.get(CONTAINER_MEM_SEVERITY), memoryLimits.length);
    if (confMemoryLimits != null) {
      memoryLimits = confMemoryLimits;
    }
    logger.info(heuristicName + " will use " + CONTAINER_MEM_SEVERITY + " with the following threshold settings: "
        + Arrays.toString(memoryLimits));
    for (int i = 0; i < memoryLimits.length; i++) {
      memoryLimits[i] = memoryLimits[i] * containerMemDefaultBytes;
    }
  }
This heuristic deals with the efficiency of container size
app/com/linkedin/drelephant/mapreduce/heuristics/GenericMemoryHeuristic.java