1. A method comprising: executing, by a computing device, software that (a) is written in a first programming language, (b) calls one or more native interpretive functions that interpret one or more non-native functions written in a second programming language different from the first programming language to enable the computing device to execute the one or more non-native functions, and (c) calls one or more native functions written in the first programming language for execution by the computing device, wherein each of the one or more native interpretive functions is written in the first programming language; and profiling execution of the software by: identifying, based on execution of the one or more native interpretive functions, which of the one or more non-native functions is interpreted by the one or more native interpretive functions, resulting in an identified non-native function, obtaining profile information that describes one or more characteristics of how the identified non-native function executed on the computing device, identifying which of the one or more native functions is being executed, resulting in an identified native function, and obtaining additional profile information that describes one or more characteristics of how the identified native function executed on the computing device.