Можно использовать созданный в класс GradientPaint .
void Paint(Graphics2D g, Regtangle r, Color c1, Color c2)
{
GradientPaint gp = new GradientPaint(0,0,c1,r.getWidth(),r.getHeight(),c2);
g.setPaint(gp);
g.fill(rect);
}
Я подозреваю, что побочным эффектом будет производительность этих других программ - система вернет страницы, выгруженные при вызове EmptyWorkingSet ()
, обратно, когда процесс они нужны.
Возиться с системой на таком низком уровне чревато опасностью: в частности, ошибки страниц в проводнике могут замедлить работу системы до такой степени, что странные тупиковые ситуации начинают поднимать свои уродливые головы. Лучше оставить это Windows, особенно для других программ, которые вы не писали.
Возможно, вам будет более эффективно понять, почему вашей собственной программе требуется так много памяти. Возможно, где-то есть утечка?
Лично я с этим не разбираюсь. Кажется «опасным»: P
В любом случае, некоторые статьи могут оказаться полезными:
Проблемы производительности с EmptyWorkingSet
Управление памятью - принудительное освобождение памяти процессом