A method for managing thermal energy generation in a portable computing device, PCD, having a multi-processor system on a chip, SoC, the method comprising: monitoring temperature readings and clock generator frequencies associated with each of a plurality of individual processing components (222, 224, 226, 228) in the multi-processor SoC; monitoring electrical current draw readings uniquely associated with each of the processing components (222, 224, 226, 228), wherein the electrical current draw readings are indicative of the processing efficiency of each processing component (222, 224, 226, 228); monitoring a thermal parameter within the portable computing device; generating an alarm in response to the monitored thermal parameter exceeding a predetermined threshold; in response to the alarm, sampling the monitored temperature readings and clock generator frequencies associated with each of the processing components (222, 224, 226, 228); in response to the alarm, sampling the electrical current draw readings uniquely associated with each of the processing components (222, 224, 226, 228); based on the sampled temperature and clock generator frequency readings, querying performance data for each processing component (222, 224, 226, 228), wherein the performance data comprises the expected electrical current draw of each processing component (222, 224, 226, 228) when operating at a given temperature and clock generator frequency; for each processing component (222, 224, 226, 228), comparing the expected electrical current draw to the sampled electrical current draw; based on the comparison, classifying the efficiency of each processing component (222, 224, 226, 228); based on the efficiency classifications, identifying a least energy efficient processing component (222, 224, 226, 228); and adjusting an input of the least energy efficient processing component (222, 224, 226, 228), wherein adjusting the input operates to reduce the power consumption by the least energy efficient processing component (222, 224, 226, 228). monitoring temperature readings and clock generator frequencies associated with each of a plurality of individual processing components (222, 224, 226, 228) in the multi-processor SoC; monitoring electrical current draw readings uniquely associated with each of the processing components (222, 224, 226, 228), wherein the electrical current draw readings are indicative of the processing efficiency of each processing component (222, 224, 226, 228); monitoring a thermal parameter within the portable computing device; generating an alarm in response to the monitored thermal parameter exceeding a predetermined threshold; in response to the alarm, sampling the monitored temperature readings and clock generator frequencies associated with each of the processing components (222, 224, 226, 228); in response to the alarm, sampling the electrical current draw readings uniquely associated with each of the processing components (222, 224, 226, 228); based on the sampled temperature and clock generator frequency readings, querying performance data for each processing component (222, 224, 226, 228), wherein the performance data comprises the expected electrical current draw of each processing component (222, 224, 226, 228) when operating at a given temperature and clock generator frequency; for each processing component (222, 224, 226, 228), comparing the expected electrical current draw to the sampled electrical current draw; based on the comparison, classifying the efficiency of each processing component (222, 224, 226, 228); based on the efficiency classifications, identifying a least energy efficient processing component (222, 224, 226, 228); and adjusting an input of the least energy efficient processing component (222, 224, 226, 228), wherein adjusting the input operates to reduce the power consumption by the least energy efficient processing component (222, 224, 226, 228).