Встроенное отключение Firefox Spellcheck?

Индекс, который вы ищете, это

boos.GetLength(1) * boos.GetLength(2) * i + boos.GetLength(2) * j + k

Как сказал @ Sergio0694. Но почему бы вам не взглянуть на неровные массивы, которые обеспечивают лучшую производительность? Я провел тест (в конфигурации RELEASE), который показал, что ваша оболочка работает в два раза быстрее, чем массив d3, но зубчатая в 3 раза быстрее, чем массив d3.

using System;
using System.Diagnostics;
using System.Linq;
using System.Threading;

namespace ArrayWrapper
{
    class ArrayPerformanceTest
    {
        int xSize = 2;
        int ySize = 3;
        int zSize = 4;
        int count = 100000000;
        int delay = 500;

        static void Main(string[] args)
        {
            new ArrayPerformanceTest().Run();
        }

        private void Run()
        {

            var d3Array = CreateD3Array();
            var wrapped = GetD1Adapter(d3Array);
            var jagged = GetJaggedArray(d3Array);

            Thread.Sleep(delay);
            TestD3Array(d3Array);
            Thread.Sleep(delay);
            TestWrappedArray(wrapped);
            Thread.Sleep(delay);
            TestJaggeddArray(jagged);
            Thread.Sleep(delay);
        }

        private int[,,] CreateD3Array()
        {
            var rectangular = new int[xSize, ySize, zSize];

            int i = 7;
            for (var x = 0; x < xSize; x++)
                for (var y = 0; y < ySize; y++)
                    for (var z = 0; z < zSize; z++)
                        rectangular[x, y, z] = ++i;

            return rectangular;
        }

        private int[] GetD1Adapter(int[,,] d3Array)
        {
            return d3Array.Cast().ToArray();
        }

        private int[][][] GetJaggedArray(int[,,] d3Array)
        {
            var xSize = d3Array.GetUpperBound(0) + 1;
            var ySize = d3Array.GetUpperBound(1) + 1;
            var zSize = d3Array.GetUpperBound(2) + 1;

            var jagged = new int[xSize].Select(j => new int[ySize].Select(k => new int[zSize].ToArray()).ToArray()).ToArray();

            for (var x = 0; x < xSize; x++)
                for (var y = 0; y < ySize; y++)
                    for (var z = 0; z < zSize; z++)
                        jagged[x][y][z] = d3Array[x, y, z];

            return jagged;
        }

        private void TestD3Array(int[,,] d3Array)
        {
            int i;
            var sw = new Stopwatch();
            sw.Start();
            for (var c = 0; c < count; c++)
                for (var x = 0; x < xSize; x++)
                    for (var y = 0; y < ySize; y++)
                        for (var z = 0; z < zSize; z++)
                            i = d3Array[x, y, z];
            sw.Stop();
            Console.WriteLine($"{nameof(d3Array),7} {sw.ElapsedTicks,10}");
        }

        private void TestWrappedArray(int[] wrapped)
        {
            int i;
            var sw = new Stopwatch();
            sw.Start();
            for (var c = 0; c < count; c++)
                for (var x = 0; x < xSize; x++)
                    for (var y = 0; y < ySize; y++)
                        for (var z = 0; z < zSize; z++)
                            i = wrapped[x * ySize * zSize + y * zSize + z];
            sw.Stop();
            Console.WriteLine($"{nameof(wrapped),7} {sw.ElapsedTicks,10}");
        }

        private void TestJaggeddArray(int[][][] jagged)
        {
            int i;
            var sw = new Stopwatch();
            sw.Start();
            for (var c = 0; c < count; c++)
                for (var x = 0; x < xSize; x++)
                    for (var y = 0; y < ySize; y++)
                        for (var z = 0; z < zSize; z++)
                            i = jagged[x][y][z];
            sw.Stop();
            Console.WriteLine($"{nameof(jagged),7} {sw.ElapsedTicks,10}");
        }
    }
}

Вывод:

d3Array   15541709
wrapped    8213316
 jagged    5322008

Я также проанализировал использование ЦП: https://i.stack.imgur.com/eCk5X.png Это с той же скоростью для всех 3 подходов.

31
задан Wilco 21 October 2008 в 23:31
поделиться

4 ответа

Разговор о наличии большого "понятное дело" момент! Я нашел ответ после некоторой пробной версии & ошибка:

<textarea spellcheck="false"></textarea>
49
ответ дан 27 November 2019 в 22:08
поделиться

Атрибут "spellcheck" в настоящее время является дополнительной функцией, доступной только в Firefox, но это рассмотрено для включения в HTML5.

5
ответ дан 27 November 2019 в 22:08
поделиться

Недостатком этого является то, что строгий валидатор W3 дает - Атрибут «проверка орфографии» не является допустимым атрибутом. Плохие новости для тех из нас, у кого ОКР, которым нравится видеть 0 ошибок при проверке наших сайтов.

2
ответ дан 27 November 2019 в 22:08
поделиться

добавить атрибут с помощью JQuery $ ('. Textarea_className'). Attr ('spellcheck', false);

Это позволит вам вернуть действительную разметку XHTML. =)

5
ответ дан 27 November 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: