Quote of the day:
A single Nehalem chip today could easily generate four gigabytes per second of new garbage when running a classic enterprise workload.The text pointed by the link is very informative, though. It's about the Azul JVM and how they exploit virtual memory to create a "Pause less" concurrent garbage collector (truly pauseless in the
(
Read more... )
Comments 22
Есть другой вариант, аналогичный обходу лабиринта по правилу левой руки, применимый к любому ациклическому связному графу.
void traverse_binary_tree( TreeNode* node ) {
#define UndefNode ((TreeNode*)-1)
TreeNode* prev = UndefNode;
do {
TreeNode* tmp;
if( node ) {
do_something( node );
// Rotate pointers with carry
tmp = node->Sons[0];
node->Sons[0] = node->Sons[1];
node->Sons[1] = prev;
prev = tmp;
}
// Swap
tmp = node; node = prev; prev = tmp;
} while( node != UndefNode );
#undef UndefNode
}
При условии выравнивания размещения узлов по четным адресам можно неинтересным и некрасивым способом обходить произвольные связные графы.
Reply
Leave a comment