A method comprising: receiving, by a processing device, first program code comprising a first plurality of program code instructions, the first program code instructions generated by a compiler in view of source code ; identifying, among the first program code instructions , one or more optimizable instructions, wherein at least one of the optimizable instructions is associated with a first execution characteristic, and the first execution characteristic is associated with an optimization decision; identifying at least one profiling instruction location associated with the at least one of the optimizable instructions; and adding at least one profiling instruction to the first program code at the profiling instruction location, wherein the at least one profiling instruction comprises at least one profiling identifier , and wherein the at least one profiling instruction causes the processing device to: generate a profiling information item in view of the first execution characteristic of the at least one of the optimizable instructions, and store the profiling information item in a persistent memory region at a memory location that corresponds to the profiling identifier ; invoke an optimizer component which reads the profiling information item from the memory region and generates optimized program code in accordance with the profiling information; characterised in that the profiling identifier comprises an identifier value that is incremented for each profiling instruction added to the first generated program code ; and the memory location comprises a sum of a base address of the persistent memory region and an offset determined in view of the profiling identifier . receiving, by a processing device, first program code comprising a first plurality of program code instructions, the first program code instructions generated by a compiler in view of source code ; identifying, among the first program code instructions , one or more optimizable instructions, wherein at least one of the optimizable instructions is associated with a first execution characteristic, and the first execution characteristic is associated with an optimization decision; identifying at least one profiling instruction location associated with the at least one of the optimizable instructions; and adding at least one profiling instruction to the first program code at the profiling instruction location, wherein the at least one profiling instruction comprises at least one profiling identifier , and wherein the at least one profiling instruction causes the processing device to: generate a profiling information item in view of the first execution characteristic of the at least one of the optimizable instructions, and store the profiling information item in a persistent memory region at a memory location that corresponds to the profiling identifier ; invoke an optimizer component which reads the profiling information item from the memory region and generates optimized program code in accordance with the profiling information; characterised in that generate a profiling information item in view of the first execution characteristic of the at least one of the optimizable instructions, and store the profiling information item in a persistent memory region at a memory location that corresponds to the profiling identifier ; invoke an optimizer component which reads the profiling information item from the memory region and generates optimized program code in accordance with the profiling information; characterised in that the profiling identifier comprises an identifier value that is incremented for each profiling instruction added to the first generated program code ; and the memory location comprises a sum of a base address of the persistent memory region and an offset determined in view of the profiling identifier . <EOS>