Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript V8不';t在'之后优化功能;手动';正在执行类型化数组.set()s_Javascript_Google Chrome_Optimization_V8 - Fatal编程技术网

Javascript V8不';t在'之后优化功能;手动';正在执行类型化数组.set()s

Javascript V8不';t在'之后优化功能;手动';正在执行类型化数组.set()s,javascript,google-chrome,optimization,v8,Javascript,Google Chrome,Optimization,V8,我有以下功能(我发布它完全是因为所有代码部分可能都是相关的): 函数buildUploadBuffers(cmds、len、vertexUploadBuffer、matrixUploadBuffer) { var vertexOffset=0; var matrixOffset=0; var quadLen=24;//每个四元组96个字节,/4因为我们一次步进4个字节 var matLen=16;//64/4,4行4个浮点数,每个浮点数为4个字节,再次一次步进4个字节 对于(变量i=0;i

我有以下功能(我发布它完全是因为所有代码部分可能都是相关的):

函数buildUploadBuffers(cmds、len、vertexUploadBuffer、matrixUploadBuffer)
{
var vertexOffset=0;
var matrixOffset=0;
var quadLen=24;//每个四元组96个字节,/4因为我们一次步进4个字节
var matLen=16;//64/4,4行4个浮点数,每个浮点数为4个字节,再次一次步进4个字节
对于(变量i=0;i function buildUploadBuffers(cmds, len, vertexUploadBuffer, matrixUploadBuffer)
       {
            var vertexOffset = 0;
            var matrixOffset = 0;

            var quadLen = 24; //96 bytes for each quads, /4 since we're stepping 4 bytes at a time
            var matLen = 16; //64/4, 4 rows of 4x floats with 4 bytes each, again stepping 4 bytes at a time

            for (var i = 0; i < len; ++i)
            {
                var cmd = cmds[i];
                var cmdQuads = cmd._numQuads;
                var source = cmd._quadU32View;
                var slen = cmdQuads * quadLen;

                vertexUploadBuffer.set(source,vertexOffset);
                vertexOffset += slen;

                var mat = cmd._stackMatrixMat;
                for(var j=0;j<cmdQuads * 4;++j)
                {
                    matrixUploadBuffer.set(mat, matrixOffset);
                    matrixOffset += matLen;
                }
            }
        }
function buildUploadBuffers(cmds, len, vertexUploadBuffer, matrixUploadBuffer)
        {
            var vertexOffset = 0;
            var matrixOffset = 0;

            var quadLen = 24; //96/4 since we're stepping 4 bytes at a time
            var matLen = 16; //64/4

            for (var i = 0; i < len; ++i)
            {
                var cmd = cmds[i];
                var cmdQuads = cmd._numQuads;
                var source = cmd._quadU32View;
                var slen = cmdQuads * quadLen;

                for(var j=0;j<slen; ++j)
                {
                    vertexUploadBuffer[vertexOffset + j] = source[j];
                }
                vertexOffset += slen;

                var mat = cmd._stackMatrixMat;
                for(var j=0;j<cmdQuads * 4;++j)
                {
                    for(var k=0;k<matLen; ++k)
                    {
                        matrixUploadBuffer[matrixOffset + k] = mat[k];
                    }
                    matrixOffset += matLen;
                }
            }
        }
function uploadMatrix(matrixUploadBuffer, mat, matLen, numVertices, matrixOffset)
        {
            for(var j=0;j<numVertices;++j)
            {
                for(var k=0;k<matLen; ++k)
                {
                    matrixUploadBuffer[matrixOffset + k] = mat[k];
                }
                matrixOffset += matLen;
            }

            return matrixOffset;
        }

        function buildUploadBuffers(cmds, len, vertexUploadBuffer, matrixUploadBuffer)
        {
            var vertexOffset = 0;
            var matrixOffset = 0;

            var quadLen = 24; //96/4 since we're stepping 4 bytes at a time
            var matLen = 16; //64/4

            for (var i = 0; i < len; ++i)
            {
                var cmd = cmds[i];
                var cmdQuads = cmd._numQuads;
                var source = cmd._quadU32View;
                var slen = cmdQuads * quadLen;

                for(var j=0;j<slen; ++j)
                {
                    vertexUploadBuffer[vertexOffset + j] = source[j];
                }
                vertexOffset += slen;

                var mat = cmd._stackMatrixMat;
                matrixOffset = uploadMatrix(matrixUploadBuffer,mat, matLen, cmdQuads *4, matrixOffset);
            }
        }