One embodiment of the present invention provides a system that facilitates
marking of objects defined within an object-oriented programming system to
keep track of accesses to fields within the objects. The system operates
by receiving a reference to a field within an object, and identifying a
marking bit within the object that is associated with the field. Note that
each marking bit within the object is associated with a different subset
of fields within the object. Next, the system sets the marking bit to
indicate that at least one field within the associated subset of fields
has been referenced. Finally, the system performs the reference to the
field. In one embodiment of the present invention, the object includes N
marking bits numbered 0, 1, 2, . . . , N-1 and M fields numbered 0, 1, 2,
. . . , M-1. In this embodiment, the system identifies the marking bit
associated with the field by starting with a field number for the field,
and applying a modulo N operation to the field number to produce a number
for the associated marking bit. In a variation on this embodiment, N is a
power of two.
Uma incorporação da invenção atual fornece um sistema que facilite o marking dos objetos definidos dentro de um sistema de programação object-oriented para se manter a par de acessos aos campos dentro dos objetos. O sistema opera-se recebendo uma referência a um campo dentro de um objeto, e identificando um marking mordido dentro do objeto que é associado com o campo. Anote que cada marking mordido dentro do objeto está associado com um subconjunto diferente dos campos dentro do objeto. Em seguida, o sistema ajusta o bocado do marking para indicar que ao menos um campo dentro do subconjunto associado dos campos referenced. Finalmente, o sistema executa a referência ao campo. Em uma incorporação da invenção atual, o objeto inclui os bocados do marking de N numerados 0, 1, 2. . . , os campos de N-1 e de M numeraram 0, 1, 2. . . , M-1. Nesta incorporação, o sistema identifica o marking mordido associado com o campo começando com um número do campo para o campo, e aplicando uma operação do modulo N ao número do campo para produzir um número para o bocado associado do marking. Em uma variação nesta incorporação, N é um poder de dois.