thread priority boost script[beta test]

Search This thread

leolawliet

Senior Member
Aug 7, 2011
3,441
1,631
New York, NY
www.facebook.com
I tried both, out of the two of them FPse plays much more nicely on my device. I don't use OpenGL either, just whatever was default. Maybe it plays differently with other devices but I'm getting absolutely no lag whatsoever while playing MGS and CSotN. To see it improve even more would be pretty cool :)

Besides that I got extra funds I'm not even spending, FPse is cheap anyway, cost cheaper than my launcher at least :3

Speaking of unused Play Store funds, any good paid app recommendations? I hate what the store itself is recommending for me.

1362500614007.png


Sent from my LG-E739 running PenberRom2 using Tapatalk 2
 

hoholee12

Senior Member
May 6, 2012
2,390
2,746
i have done only the 20% of the engine at the moment...
ive got more idea to code:)

hey there geeks !
if you know what the following script does, please use your geeky power to translate it for others to understand. thank you;)
cat > /etc/init.d/test <<EOF
#Cortex Flush Technology 1.1
while true; do
if [ -e "/sys/module/lowmemorykiller/parameters/adj" ]; then adj1=\`awk -F , '{print \$1}' /sys/module/lowmemorykiller/parameters/adj\`; adj2=\`awk -F , '{print \$2}' /sys/module/lowmemorykiller/parameters/adj\`; adj3=\`awk -F , '{print \$3}' /sys/module/lowmemorykiller/parameters/adj\`; adj4=\`awk -F , '{print \$4}' /sys/module/lowmemorykiller/parameters/adj\`; adj5=\`awk -F , '{print \$5}' /sys/module/lowmemorykiller/parameters/adj\`; adj6=\`awk -F , '{print \$6}' /sys/module/lowmemorykiller/parameters/adj\`; fi
if [ "\$adj1" ]; then if [ \$adj1 -lt 1 ]; then adj1=\$adj2; if [ \$adj2 -lt 1 ]; then adj1=\$adj3; if [ \$adj3 -lt 1 ]; then adj1=\$adj4; if [ \$adj4 -lt 1 ]; then adj1=\$adj5; if [ \$adj5 -lt 1 ]; then adj1=\$adj6; if [ \$adj6 -lt 1 ]; then adj1=1; fi; fi; fi; fi; fi; fi; else adj1=1; fi
if [ "\$adj2" ]; then if [ \$adj2 -lt 1 ]; then adj2=\$adj3; if [ \$adj3 -lt 1 ]; then adj2=\$adj4; if [ \$adj4 -lt 1 ]; then adj2=\$adj5; if [ \$adj5 -lt 1 ]; then adj2=\$adj6; if [ \$adj6 -lt 1 ]; then adj2=\$adj1; if [ \$adj1 -lt 1 ]; then adj2=1; fi; fi; fi; fi; fi; fi; else adj2=1; fi
if [ "\$adj3" ]; then if [ \$adj3 -lt 1 ]; then adj3=\$adj4; if [ \$adj4 -lt 1 ]; then adj3=\$adj5; if [ \$adj5 -lt 1 ]; then adj3=\$adj6; if [ \$adj6 -lt 1 ]; then adj3=\$adj1; if [ \$adj1 -lt 1 ]; then adj3=\$adj2; if [ \$adj2 -lt 1 ]; then adj3=2; fi; fi; fi; fi; fi; fi; else adj3=2; fi
if [ "\$adj4" ]; then if [ \$adj4 -lt 1 ]; then adj4=\$adj5; if [ \$adj5 -lt 1 ]; then adj4=\$adj6; if [ \$adj6 -lt 1 ]; then adj4=\$adj1; if [ \$adj1 -lt 1 ]; then adj4=\$adj2; if [ \$adj2 -lt 1 ]; then adj4=\$adj3; if [ \$adj3 -lt 1 ]; then adj4=6; fi; fi; fi; fi; fi; fi; else adj4=6; fi
if [ "\$adj5" ]; then if [ \$adj5 -lt 1 ]; then adj5=\$adj6; if [ \$adj6 -lt 1 ]; then adj5=\$adj1; if [ \$adj1 -lt 1 ]; then adj5=\$adj2; if [ \$adj2 -lt 1 ]; then adj5=\$adj3; if [ \$adj3 -lt 1 ]; then adj5=\$adj4; if [ \$adj4 -lt 1 ]; then adj5=9; fi; fi; fi; fi; fi; fi; else adj5=9; fi
if [ "\$adj6" ]; then if [ \$adj6 -lt 1 ]; then adj6=\$adj1; if [ \$adj1 -lt 1 ]; then adj6=\$adj2; if [ \$adj2 -lt 1 ]; then adj6=\$adj3; if [ \$adj3 -lt 1 ]; then adj6=\$adj4; if [ \$adj4 -lt 1 ]; then adj6=\$adj5; if [ \$adj5 -lt 1 ]; then adj6=15; fi; fi; fi; fi; fi; fi; else adj6=15; fi
if [ "\$adj1" ]; then static1=\$adj1; if [ "\$adj2" ]; then static2=\$((\$adj2-\$adj1)); if [ "\$adj3" ]; then static3=\$((\$adj3-\$adj2)); if [ "\$adj4" ]; then static4=\$((\$adj4-\$adj3)); if [ "\$adj5" ]; then static5=\$((\$adj5-\$adj4)); if [ "\$adj6" ]; then static6=\$((\$adj6-\$adj5)); fi; fi; fi; fi; fi; fi
mfk=\`cat /proc/sys/vm/min_free_kbytes\`; totalram=\`cat /proc/meminfo | grep MemTotal | awk '{print \$2}'\`; realtotal=\$((\$totalram-\$mfk))
if [ "\$realtotal" -le 524288 ]; then num=1536; if [ "\$realtotal" -le 1048576 ]; then num=2048; if [ "\$realtotal" -le 2097152 ]; then num=4096; if [ "\$realtotal" -gt 2097152 ]; then num=4096; fi; fi; fi; fi
if [ "\$static1" ]; then multi1=\$((\$static1*\$num)); if [ "\$static2" ]; then multi2=\$((\$static2*\$num)); if [ "\$static3" ]; then multi3=\$((\$static3*\$num)); if [ "\$static4" ]; then multi4=\$((\$static4*\$num)); if [ "\$static5" ]; then multi5=\$((\$static5*\$num)); if [ "\$static6" ]; then multi6=\$((\$static6*\$num)); fi; fi; fi; fi; fi; fi
if [ "\$multi1" ]; then minfree1=\$((\$num+\$multi1)); if [ "\$multi2" ]; then minfree2=\$((\$minfree1+\$multi2)); if [ "\$multi3" ]; then minfree3=\$((\$minfree2+\$multi3)); if [ "\$multi4" ]; then minfree4=\$((\$minfree3+\$multi4)); if [ "\$multi5" ]; then minfree5=\$((\$minfree4+\$multi5)); if [ "\$multi6" ]; then minfree6=\$((\$minfree5+\$multi6)); fi; fi; fi; fi; fi; fi
freemem=\`cat /proc/meminfo | grep MemFree | awk '{print \$2}'\`; cachesize=\`cat /proc/meminfo | grep Cached | awk '{print \$2}'\`; real=\$((\$cachesize+\$freemem)); realpage=\$((\$real/4))
if [ "\$realpage" -le "\$minfree6" ] && [ "\$realpage" -gt "\$minfree5" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj5" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree5" ] && [ "\$realpage" -gt "\$minfree4" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj4" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree4" ] && [ "\$realpage" -gt "\$minfree3" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj3" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree3" ] && [ "\$realpage" -gt "\$minfree2" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj2" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree2" ] && [ "\$realpage" -gt "\$minfree1" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj1" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree1" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ -e "/system/etc/usrsettings.conf" ]; then core_refresh_sec_interval=\`cat /system/etc/usrsettings.conf | grep core_refresh_sec_interval | sed 's/core_refresh_sec_interval=//'\`; if [ "\$core_refresh_sec_interval" -gt 1 ]; then sleep 0; else core_refresh_sec_interval=4; fi 2>/dev/null; else core_refresh_sec_interval=4; fi
if [ -e "/system/etc/usrsettings.conf" ]; then timeout_sec_interval=\`cat /system/etc/usrsettings.conf | grep timeout_sec_interval | sed 's/timeout_sec_interval=//'\`; if [ "\$timeout_sec_interval" -gt "\$core_refresh_sec_interval" ]; then sleep 0; else timeout_sec_interval=32; fi 2>/dev/null; else timeout_sec_interval=32; fi
if [ ! "\$timeout" ]; then timeout=0; fi
if [ "\$timeout" -ge "\$timeout_sec_interval" ]; then timeout=0; fi
if [ "\$timeout" == 0 ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` == 0 ]; then busybox renice -n-20 -p\$i; fi; if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj2" ]; then busybox ionice -c3 -p\$i; fi; fi; done; fi
timeout=\$((\$timeout+\$core_refresh_sec_interval))
sleep \$core_refresh_sec_interval
done
EOF

this engine will be considered as my second successful project:)
 
Last edited:

radicspeter

Senior Member
Mar 29, 2011
606
204
i have done only the 50% of the engine at the moment...
a little bit change of plans for the original brainstorming sketch(this workaround is much more efficient and faster.:good:)


this engine will be considered as my second successful project:)

edit: okay, its a serious bug indeed.
system just gets killed everytime i open a giant app:(
hope to fix it soon, perhaps i could use some of your help;)

SGS users have a PID White list future. Maybe set System?

Tapatalk 2-vel küldve az én GT-I9000-ről
 

hoholee12

Senior Member
May 6, 2012
2,390
2,746
i have done only the 80% of the engine at the moment...
testing the new giant turd...sfsg;)

hey there geeks !
if you know what the following script does, please use your geeky power to translate it for others to understand. thank you;)
cat > /etc/init.d/test <<EOF
#Cortex Flush Technology 1.1
(while true; do
adj1=\`awk -F , '{print \$1}' /sys/module/lowmemorykiller/parameters/adj\`
adj2=\`awk -F , '{print \$2}' /sys/module/lowmemorykiller/parameters/adj\`
adj3=\`awk -F , '{print \$3}' /sys/module/lowmemorykiller/parameters/adj\`
adj4=\`awk -F , '{print \$4}' /sys/module/lowmemorykiller/parameters/adj\`
adj5=\`awk -F , '{print \$5}' /sys/module/lowmemorykiller/parameters/adj\`
adj6=\`awk -F , '{print \$6}' /sys/module/lowmemorykiller/parameters/adj\`
if [ "\$adj1" ]; then if [ \$adj1 -lt 1 ]; then adj1=\$adj2; if [ \$adj2 -lt 1 ]; then adj1=\$adj3; if [ \$adj3 -lt 1 ]; then adj1=\$adj4; if [ \$adj4 -lt 1 ]; then adj1=\$adj5; if [ \$adj5 -lt 1 ]; then adj1=\$adj6; if [ \$adj6 -lt 1 ]; then adj1=1; fi; fi; fi; fi; fi; fi; else adj1=1; fi
if [ "\$adj2" ]; then if [ \$adj2 -lt 1 ]; then adj2=\$adj3; if [ \$adj3 -lt 1 ]; then adj2=\$adj4; if [ \$adj4 -lt 1 ]; then adj2=\$adj5; if [ \$adj5 -lt 1 ]; then adj2=\$adj6; if [ \$adj6 -lt 1 ]; then adj2=\$adj1; if [ \$adj1 -lt 1 ]; then adj2=1; fi; fi; fi; fi; fi; fi; else adj2=1; fi
if [ "\$adj3" ]; then if [ \$adj3 -lt 1 ]; then adj3=\$adj4; if [ \$adj4 -lt 1 ]; then adj3=\$adj5; if [ \$adj5 -lt 1 ]; then adj3=\$adj6; if [ \$adj6 -lt 1 ]; then adj3=\$adj1; if [ \$adj1 -lt 1 ]; then adj3=\$adj2; if [ \$adj2 -lt 1 ]; then adj3=2; fi; fi; fi; fi; fi; fi; else adj3=2; fi
if [ "\$adj4" ]; then if [ \$adj4 -lt 1 ]; then adj4=\$adj5; if [ \$adj5 -lt 1 ]; then adj4=\$adj6; if [ \$adj6 -lt 1 ]; then adj4=\$adj1; if [ \$adj1 -lt 1 ]; then adj4=\$adj2; if [ \$adj2 -lt 1 ]; then adj4=\$adj3; if [ \$adj3 -lt 1 ]; then adj4=6; fi; fi; fi; fi; fi; fi; else adj4=6; fi
if [ "\$adj5" ]; then if [ \$adj5 -lt 1 ]; then adj5=\$adj6; if [ \$adj6 -lt 1 ]; then adj5=\$adj1; if [ \$adj1 -lt 1 ]; then adj5=\$adj2; if [ \$adj2 -lt 1 ]; then adj5=\$adj3; if [ \$adj3 -lt 1 ]; then adj5=\$adj4; if [ \$adj4 -lt 1 ]; then adj5=9; fi; fi; fi; fi; fi; fi; else adj5=9; fi
if [ "\$adj6" ]; then if [ \$adj6 -lt 1 ]; then adj6=\$adj1; if [ \$adj1 -lt 1 ]; then adj6=\$adj2; if [ \$adj2 -lt 1 ]; then adj6=\$adj3; if [ \$adj3 -lt 1 ]; then adj6=\$adj4; if [ \$adj4 -lt 1 ]; then adj6=\$adj5; if [ \$adj5 -lt 1 ]; then adj6=15; fi; fi; fi; fi; fi; fi; else adj6=15; fi
static1=\$adj1
static2=\$((\$adj2-\$adj1))
static3=\$((\$adj3-\$adj2))
static4=\$((\$adj4-\$adj3))
static5=\$((\$adj5-\$adj4))
static6=\$((\$adj6-\$adj5))
mfk=\`cat /proc/sys/vm/min_free_kbytes\`
totalram=\`free | awk '{ print \$2 }' | sed -n 2p\`
realtotal=\$((\$totalram-\$mfk))
if [ "\$realtotal" -le 524288 ]; then num=1536; if [ "\$realtotal" -le 1048576 ]; then num=2048; if [ "\$realtotal" -le 2097152 ]; then num=4096; if [ "\$realtotal" -gt 2097152 ]; then num=4096; fi; fi; fi; fi
multi1=\$((\$static1*\$num))
multi2=\$((\$static2*\$num))
multi3=\$((\$static3*\$num))
multi4=\$((\$static4*\$num))
multi5=\$((\$static5*\$num))
multi6=\$((\$static6*\$num))
minfree1=\$((\$num+\$multi1))
minfree2=\$((\$minfree1+\$multi2))
minfree3=\$((\$minfree2+\$multi3))
minfree4=\$((\$minfree3+\$multi4))
minfree5=\$((\$minfree4+\$multi5))
minfree6=\$((\$minfree5+\$multi6))
freemem=\`free | awk '{ print \$4 }' | sed -n 2p\`
cachesize=\`cat /proc/meminfo | grep Cached | awk '{print \$2}' | sed -n 1p\`
real=\$((\$cachesize+\$freemem))
realpage=\$((\$real/4))
if [ "\$realpage" -le "\$minfree6" ] && [ "\$realpage" -gt "\$minfree5" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj5" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree5" ] && [ "\$realpage" -gt "\$minfree4" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj4" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree4" ] && [ "\$realpage" -gt "\$minfree3" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj3" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree3" ] && [ "\$realpage" -gt "\$minfree2" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj2" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree2" ] && [ "\$realpage" -gt "\$minfree1" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj1" ] && [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ "\$realpage" -le "\$minfree1" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -le "\$adj6" ]; then kill -9 \$i; fi; fi; done; fi
if [ -e "/system/etc/usrsettings.conf" ]; then core_refresh_sec_interval=\`cat /system/etc/usrsettings.conf | grep core_refresh_sec_interval | sed 's/core_refresh_sec_interval=//'\`; if [ "\$core_refresh_sec_interval" -gt 1 ]; then sleep 0; else core_refresh_sec_interval=4; fi 2>/dev/null; else core_refresh_sec_interval=4; fi
if [ -e "/system/etc/usrsettings.conf" ]; then timeout_sec_interval=\`cat /system/etc/usrsettings.conf | grep timeout_sec_interval | sed 's/timeout_sec_interval=//'\`; if [ "\$timeout_sec_interval" -gt "\$core_refresh_sec_interval" ]; then sleep 0; else timeout_sec_interval=32; fi 2>/dev/null; else timeout_sec_interval=32; fi
if [ ! "\$timeout" ]; then timeout=0; fi
timeout=\$((\$timeout+\$core_refresh_sec_interval))
if [ "\$timeout" -ge "\$timeout_sec_interval" ]; then for i in \`find /proc -maxdepth 1 -type d | sed 's/\\/proc\\///'\`; do if [ -e "/proc/\$i/oom_adj" ]; then if [ \`cat /proc/\$i/oom_adj\` -le "\$adj2" ]; then busybox renice -n-20 -p\$i; fi; if [ \`cat /proc/\$i/oom_adj\` -gt "\$adj2" ]; then busybox ionice -c3 -p\$i; fi; fi; done; timeout=0; fi
sleep \$core_refresh_sec_interval
done &)

EOF

this engine will be considered as my second successful project:)
 
Last edited:

hoholee12

Senior Member
May 6, 2012
2,390
2,746
When will it be ready? ;)
Idk, i have to tweak this massive dung a little bit to make it perform "right":p
its because the new method i redesigned two hours ago that it is now working properly, but it needs to be handled differently(much harder brain F-ing disaster than the last one) to make it useful for performance.

 

Erica Law

Senior Member
Apr 4, 2013
385
103
Singapore
Finally I found a forum app for Windows Phone 8. Now, what's the "new method"? :p

Sent from my RM-821_apac_singapore_293 using Board Express
 

Top Liked Posts

  • There are no posts matching your filters.
  • 366
    my new performance tuning script, check it out!!
    What's the concept?
    -it boosts thread priority per process to gain extra performance.(hopefully)

    How do i install?
    -download the attachment
    -find a way to launch it on any interactive terminal(you're on your own)
    -type install

    recommended applications:
    download busybox from stericsonhere
    download smanager here.

    How to check if it works?
    -type in whatever it says in the installer after you've installed.
    -if it responds with error, then you've got problem.

    it failed to run, what do i do now?(deeeebuuuuuugiiiiiiing)
    -type in 'skeleton(or whatever you renamed it as) --verbose'
    this will debug the program and show the result of what is going on.
    if necessary, you can also try 'skeleton --bbpass --supass --verbose --renice 19'.

    -paste the outcome here. i will help you.

    How to run?
    -run the program
    -read the description.

    hidden feature:
    -'fork mediaserv 900 0.1 19'
    will stop the stutters on audio.
    -'randtest'
    will cause havok to your device.

    details will be updated in a distant future.

    feel free to contribute to my code.
    sourcecode: https://github.com/lenarox/avcore
    76
    25
    Just an update .. Im rewriting this engine in a different code style.
    edit: everything changed. it looks alot like cell processor now:p
    busybox ps -p1 -o pcpu | sed 's/%CPU//' | tail -n1 | awk '{print $1}'
    1.
    new design of rtmixman
    boot(bios)
    (instructions)
    -C0000>I0000(read map when first boot)
    C0000(main process)
    (instructions)
    -I0000(read map)
    -I0001(sync time)
    -I0002(sleep time)
    -I0003(go go gadget)
    -I0004(^^this)
    (execute map=whole skeleton)
    (execute instructions)
    C0001(child process)
    (execute instructions)
    C0002(child process)
    (execute instructions)
    C0003(child process)
    (execute instructions)
    C0004(child process)
    (execute instructions)
    C0005(child process)
    (execute instructions)
    C0006(child process)
    (execute instructions)
    C0007(child process)
    (execute instructions)
    C0008(child process)
    (execute instructions)

    (return)
    2.
    I0004 special feature:
    -make process concentrate on foreground tasks, make background process usage low as possible(avoid lags).
    I0003 special feature:
    -kill apps only in specific layers(you can avoid killing launcher and background apps). both multitasking and performance wise(might be possible)
    I0000 special feature:
    -retrieves every single information through anywhere, anytime.(I/O)
    I0001 special feature:
    -it counts time between desired tasks(whom goes first in line) and sends random statistics to other instructions for changing aggressivity options to keep them in sync.
    I0002 special feature:
    -go to sleep for reasonable seconds.(synced with I0001).
    3.
    just two cons for this engine:
    -enabling log will be a real pain in the ass.
    -I0004 is sort of a BS, i will have to test this alot, i mean ALOT more to actually make this happen.
    4.
    just testing with these map settings for a moment...
    boot()
    {
    export boot=I0000 id=1
    C0000 #start main unit
    }
    C0000() #Power Processor Element
    {
    I0000() #mapping
    {
    ./system/etc/usrsettings.conf ##masterfile read
    ###warning: it must be able to count all instructions, or else some wont work.###
    export C0000A=\`echo \$C0000 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0000B=\`echo \$C0000 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0000C=\`echo \$C0000 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0000D=\`echo \$C0000 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0000E=\`echo \$C0000 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0001A=\`echo \$C0001 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0001B=\`echo \$C0001 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0001C=\`echo \$C0001 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0001D=\`echo \$C0001 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0001E=\`echo \$C0001 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0002A=\`echo \$C0002 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0002B=\`echo \$C0002 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0002C=\`echo \$C0002 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0002D=\`echo \$C0002 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0002E=\`echo \$C0002 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0003A=\`echo \$C0003 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0003B=\`echo \$C0003 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0003C=\`echo \$C0003 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0003D=\`echo \$C0003 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0003E=\`echo \$C0003 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0004A=\`echo \$C0004 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0004B=\`echo \$C0004 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0004C=\`echo \$C0004 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0004D=\`echo \$C0004 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0004E=\`echo \$C0004 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0005A=\`echo \$C0005 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0005B=\`echo \$C0005 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0005C=\`echo \$C0005 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0005D=\`echo \$C0005 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0005E=\`echo \$C0005 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0006A=\`echo \$C0006 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0006B=\`echo \$C0006 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0006C=\`echo \$C0006 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0006D=\`echo \$C0006 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0006E=\`echo \$C0006 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0007A=\`echo \$C0007 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0007B=\`echo \$C0007 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0007C=\`echo \$C0007 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0007D=\`echo \$C0007 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0007E=\`echo \$C0007 | sed 's/,/ /' | awk '{print \$5}'\`
    export C0008A=\`echo \$C0008 | sed 's/,/ /' | awk '{print \$1}'\`
    export C0008B=\`echo \$C0008 | sed 's/,/ /' | awk '{print \$2}'\`
    export C0008C=\`echo \$C0008 | sed 's/,/ /' | awk '{print \$3}'\`
    export C0008D=\`echo \$C0008 | sed 's/,/ /' | awk '{print \$4}'\`
    export C0008E=\`echo \$C0008 | sed 's/,/ /' | awk '{print \$5}'\`

    #I0002 specific properties
    export main_custom_sleep_timer=\`echo \$custom_sleep_timer | sed 's/,/ /' | awk '{print \$1}'\`
    export sub_custom_sleep_timer=\`echo \$custom_sleep_timer | sed 's/,/ /' | awk '{print \$2}'\`
    }
    I0001() #sync
    {
    }
    I0002() #sleep
    {
    if [ ! "\$custom_sleep_timer" ]; then
    sleep 4
    else
    sleep \$custom_sleep_timer
    fi
    }
    I0003() #flush
    {
    prev_total=0
    prev_idle=0
    while true; do
    cpu=`cat /proc/stat | head -n1 | sed 's/cpu //'`
    user=`echo $cpu | awk '{print $1}'`
    system=`echo $cpu | awk '{print $2}'`
    nice=`echo $cpu | awk '{print $3}'`
    idle=`echo $cpu | awk '{print $4}'`
    wait=`echo $cpu | awk '{print $5}'`
    irq=`echo $cpu | awk '{print $6}'`
    srq=`echo $cpu | awk '{print $7}'`
    zero=`echo $cpu | awk '{print $8}'`
    total=$(($user+$system+$nice+$idle+$wait+$irq+$srq+$zero))
    diff_idle=$(($idle-$prev_idle))
    diff_total=$(($total-$prev_total))
    usage=$(($((1000*$(($diff_total-$diff_idle))/$diff_total+5))/10))
    clear
    echo "Current Usage: $usage%"
    prev_total=$total
    prev_idle=$idle
    sleep 1
    done
    }
    I0004() #nice
    {
    }
    if [ "\$id" == 1 ]; then \$boot; export id=0; fi ##bootup
    if [ "\$C0000A" ]; then \$C0000A; fi
    if [ "\$C0000B" ]; then \$C0000B; fi
    if [ "\$C0000C" ]; then \$C0000C; fi
    if [ "\$C0000D" ]; then \$C0000D; fi
    if [ "\$C0000E" ]; then \$C0000E; fi
    ###sub unit online interconnection###
    if [ "\$C0001" ]; then \$C0001 &; fi
    if [ "\$C0002" ]; then \$C0002 &; fi
    if [ "\$C0003" ]; then \$C0003 &; fi
    if [ "\$C0004" ]; then \$C0004 &; fi
    if [ "\$C0005" ]; then \$C0005 &; fi
    if [ "\$C0006" ]; then \$C0006 &; fi
    if [ "\$C0007" ]; then \$C0007 &; fi
    if [ "\$C0008" ]; then \$C0008 &; fi
    C0000 & ##loop
    }
    C0001() #Synergistic Processor Element #1
    {
    if [ "\$C0001A" ]; then \$C0001A; fi
    if [ "\$C0001B" ]; then \$C0001B; fi
    if [ "\$C0001C" ]; then \$C0001C; fi
    if [ "\$C0001D" ]; then \$C0001D; fi
    if [ "\$C0001E" ]; then \$C0001E; fi
    }
    C0002() #Synergistic Processor Element #2
    {
    if [ "\$C0002A" ]; then \$C0002A; fi
    if [ "\$C0002B" ]; then \$C0002B; fi
    if [ "\$C0002C" ]; then \$C0002C; fi
    if [ "\$C0002D" ]; then \$C0002D; fi
    if [ "\$C0002E" ]; then \$C0002E; fi
    }
    C0003() #Synergistic Processor Element #3
    {
    if [ "\$C0003A" ]; then \$C0003A; fi
    if [ "\$C0003B" ]; then \$C0003B; fi
    if [ "\$C0003C" ]; then \$C0003C; fi
    if [ "\$C0003D" ]; then \$C0003D; fi
    if [ "\$C0003E" ]; then \$C0003E; fi
    }
    C0004() #Synergistic Processor Element #4
    {
    if [ "\$C0004A" ]; then \$C0004A; fi
    if [ "\$C0004B" ]; then \$C0004B; fi
    if [ "\$C0004C" ]; then \$C0004C; fi
    if [ "\$C0004D" ]; then \$C0004D; fi
    if [ "\$C0004E" ]; then \$C0004E; fi
    }
    C0005() #Synergistic Processor Element #5
    {
    if [ "\$C0005A" ]; then \$C0005A; fi
    if [ "\$C0005B" ]; then \$C0005B; fi
    if [ "\$C0005C" ]; then \$C0005C; fi
    if [ "\$C0005D" ]; then \$C0005D; fi
    if [ "\$C0005E" ]; then \$C0005E; fi
    }
    C0006() #Synergistic Processor Element #6
    {
    if [ "\$C0006A" ]; then \$C0006A; fi
    if [ "\$C0006B" ]; then \$C0006B; fi
    if [ "\$C0006C" ]; then \$C0006C; fi
    if [ "\$C0006D" ]; then \$C0006D; fi
    if [ "\$C0006E" ]; then \$C0006E; fi
    }
    C0007() #Synergistic Processor Element #7
    {
    if [ "\$C0007A" ]; then \$C0007A; fi
    if [ "\$C0007B" ]; then \$C0007B; fi
    if [ "\$C0007C" ]; then \$C0007C; fi
    if [ "\$C0007D" ]; then \$C0007D; fi
    if [ "\$C0007E" ]; then \$C0007E; fi
    }
    C0008() #Synergistic Processor Element #8
    {
    if [ "\$C0008A" ]; then \$C0008A; fi
    if [ "\$C0008B" ]; then \$C0008B; fi
    if [ "\$C0008C" ]; then \$C0008C; fi
    if [ "\$C0008D" ]; then \$C0008D; fi
    if [ "\$C0008E" ]; then \$C0008E; fi
    }
    boot #start processC0000=I0000,I0001,I0002,I0003,I0004 #enable map, sync, sleep for main unit
    C0001=I0003,I0004 #repeat others for ultimate sync test
    C0002=I0003,I0004
    C0003=I0003,I0004
    C0004=I0003,I0004
    C0005=I0003,I0004
    C0006=I0003,I0004
    C0007=I0003,I0004
    C0008=I0003,I0004
    20
    dev logs>>
    this new engine will be awesome!:cool:
    currently done:
    -TRASHED LOWMEMORYKILLER and replaced it with my (DUN DUN DUN)new engine!:good:
    -if there is no adj found, use its own built-in value.
    -minfree is not connected.(use its own calculated minfree)
    -above these two really needs to be modified for performance:p
    -renice highest priority for foreground.
    -ionice lowest priority for anything else thats not needed for the moment.
    -no usrsettings.conf needed.
    18
    ditched old straight flush technology, and replaced with new cortex flush technology.(over 8kb)

    edit: i actually have managed to port the whole lowmemorykiller stuff to a bash script today and now i an modifying it for advanced gaming experience.
    Ofcourse these two wont have any conflict because the one i created will take first chance to wipe the whole targeted layer in one zap while the original one clears them one by one using least recently used lists.
    They will also share the same values on same locations:)

    stay tuned;)

    prototype
    strategy.png


    my goal is to make a full-fledged working engine with a bash script.:victory:
    im also really going to disable the lowmemorykiller when this engine is doing its job properly:)