A method, comprising: allocating storage for a placeholder class instance of a software object using a computing device, wherein the placeholder class instance comprises an interface method table and a placeholder virtual method table, and wherein the placeholder virtual method table has an estimated virtual method table size; after allocating storage for the placeholder class instance, determining an actual size of a virtual method table for the software object; after determining the actual size of the virtual method table, allocating storage for a class instance of the software object using the computing device, wherein the class instance comprises an interface method table and a virtual method table having the actual size of the virtual method table; after allocating storage for the class instance, replacing the placeholder class instance with the class instance; receiving a request to call a software method of the class instance at the computing device, wherein the interface method table comprises one or more interface method table entries and the virtual method table comprises one or more virtual table entries, wherein the one or more interface method table entries comprise a particular interface method table entry for a particular interface method of a software interface associated with the class instance, the particular interface method table entry comprising a reference related to the particular interface method, wherein the one or more virtual table entries comprise a particular virtual table entry for a particular virtual method associated with the class instance, the particular virtual table entry comprising a reference related to the particular virtual method; determining an entry point for the called software method based on at least one of the interface method table and the virtual method table using the computing device, wherein the entry point is an address of a first executable instruction of the called software method; and calling the called software method by executing instructions at the entry point using the computing device. allocating storage for a placeholder class instance of a software object using a computing device, wherein the placeholder class instance comprises an interface method table and a placeholder virtual method table, and wherein the placeholder virtual method table has an estimated virtual method table size; after allocating storage for the placeholder class instance, determining an actual size of a virtual method table for the software object; after determining the actual size of the virtual method table, allocating storage for a class instance of the software object using the computing device, wherein the class instance comprises an interface method table and a virtual method table having the actual size of the virtual method table; after allocating storage for the class instance, replacing the placeholder class instance with the class instance; receiving a request to call a software method of the class instance at the computing device, wherein the interface method table comprises one or more interface method table entries and the virtual method table comprises one or more virtual table entries, wherein the one or more interface method table entries comprise a particular interface method table entry for a particular interface method of a software interface associated with the class instance, the particular interface method table entry comprising a reference related to the particular interface method, wherein the one or more virtual table entries comprise a particular virtual table entry for a particular virtual method associated with the class instance, the particular virtual table entry comprising a reference related to the particular virtual method; determining an entry point for the called software method based on at least one of the interface method table and the virtual method table using the computing device, wherein the entry point is an address of a first executable instruction of the called software method; and calling the called software method by executing instructions at the entry point using the computing device.