I need speed hints
Hi,
Here, one part of source code.
privatestaticfinalbyte ASS_DATA_SIZE = (byte)116;
privatestaticfinalbyte ASS_SIGN_SIZE = (byte)16;
privatebyte[] mData;
privatebyte[] mSignature;
privatebyte[] mSignatureTemp;
...
public Signature()
{
mData = JCSystem.makeTransientByteArray(ASS_DATA_SIZE, JCSystem.CLEAR_ON_DESELECT);
mSignature =JCSystem.makeTransientByteArray(ASS_SIGN_SIZE, JCSystem.CLEAR_ON_DESELECT);
mSignatureTemp =JCSystem.makeTransientByteArray(ASS_SIGN_SIZE, JCSystem.CLEAR_ON_DESELECT);
}
....
privateboolean check()
{
Util.arrayCopyNonAtomic( mData, (short)0, mSignatureTemp, (short)0, ASS_SIGN_SIZE);
for(byte i = 16, j = 0; i < ASS_DATA_SIZE; i++)
{
j++;
}
returntrue;
}
In function check, it takes about 60 miliseconds.
If I remove the loop, it takes 20 mili and It looks like
this.
privateboolean check()
{
Util.arrayCopyNonAtomic( mData, (short)0, mSignatureTemp, (short)0, ASS_SIGN_SIZE);
returntrue;
}
And check is this way takes about 160 miliseconfs.
privateboolean check()
{
Util.arrayCopyNonAtomic( mData, (short)0, mSignatureTemp, (short)0, ASS_SIGN_SIZE);
for(byte i = 16, j = 0; i < ASS_DATA_SIZE; i++)
{
j++;
//mSignatureTemp[j++] = mData[i];
//if ( j == (byte)16)
//j = 0;
}
returntrue;
//return (Util.arrayCompare( mSignatureTemp, (short)0, mSignature, (short)0, ASS_SIGN_SIZE ) == 0);
}
My question is, Can a loop spend so much time ( 40 miliseconds) ?
And a loop and a xor takes 160 mili.
How can I speed up it ? or is it normal ?

