Пространство "кучи" Java ограничено по умолчанию, но это все еще звучит как экстремальное значение (хотя, насколько большой Ваши 50 000 сегментов?)
я подозреваю, что у Вас есть некоторая другая проблема, как массивы в наборе, становящемся слишком крупными, потому что все присвоено в тот же "слот" (также выполнение влияния, конечно). Однако это кажется маловероятным, если Ваши точки равномерно распределены.
я задаюсь вопросом хотя, почему Вы используете HashMap, а не TreeMap? Даже при том, что точки являются двумерными, Вы могли разделить их на подклассы со сравнить функцией и затем регистрируете (n) поиски.
Глядя на ваш источник, translate3d (0,0,0) не применяется до начала перехода?
Попробуйте
.screen{
-webkit-transform: translate3d(0,0,0);
}
или
.screen *, .screen{
-webkit-transform: translate3d(0,0,0);
}
Мерцание - это, вероятно, аппаратное ускорение (в настоящее время оно работает только с трехмерными переведенными элементами).
Я знаю, что это старый вопрос о динозаврах, но есть решение этой проблемы, и оно довольно легкое и очень простое.
document.getElementById('clicked_input').addEventListener('focus', function(e){
e.stopPropagation();
},false);
Когда я тоже занялся этой проблемой, мне показалось, что я попробовал все - в конце концов, единственное, что мне помогло, - это создать модальное окно (position: absolute) вне div контейнера приложения, а также установить приложение. контейнер div для отображения: false; когда клавиатура подходила. Хотя это работало, это было уродливо, я проверил все, чтобы увидеть, что вызвало событие, и казалось, что, когда всплыло «событие фокуса», каждое 3d преобразование портится (в мерцании и производительности).
Предотвращение события пузырения решило эту проблему полностью - совершенно ошеломляюще, что такая ненавистная ошибка имела такое простое решение?
Я согласен с Беном, вам, вероятно, следует установить преобразования и для самих классов:
/*************************************************
Slide Left
*************************************************/
.screen.slideleft{
-webkit-animation-duration: 0.5s;
-webkit-animation-timing-function: ease-in-out;
-webkit-transform: translate3d(0,0,0);
}
.screen.slideleft.outgoing{
z-index: 50 !important;
-webkit-animation-name: slideleft-outgoing;
-webkit-transform: translate3d(-100%,0,0);
}
.screen.slideleft.incoming{
z-index: 100 !important;
-webkit-animation-name: slideleft-incoming;
-webkit-transform: translate3d(0,0,0);
}
@-webkit-keyframes slideleft-outgoing{
from { -webkit-transform: translate3d(0,0,0); }
to { -webkit-transform: translate3d(-100%,0,0); }
}
@-webkit-keyframes slideleft-incoming{
from { -webkit-transform: translate3d(100%,0,0); }
to { -webkit-transform: translate3d(0,0,0); }
}
Если это не сработает, мне было бы интересно проверить, переводит ли X только с translateX(-100%)
исправляет проблему. (Не обязательно исправление, потому что у вас нет аппаратного ускорения без 3D-преобразований, но это поможет сузить проблему.)