设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3996|回复: 6
打印 上一主题 下一主题

[讨论] RGSS对CPU的利用

[复制链接]

Lv2.观梦者

梦石
0
星屑
767
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
跳转到指定楼层
1
发表于 2012-8-9 11:41:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 R-零 于 2012-8-9 12:05 编辑

下面是本人最近开始的粒子系统的截图,总体效率还可以,但是当本人把精灵数目提高到3000甚至7000时,画面会变卡但是用任务管理器查看时game.exe这个进程的cpu使用率怎么也不超过25%,也就是说它只利用了本人25%的cpu资源,正好相当于本人4核中的一个核
大概查了下,http://www.baidu.com/s?bs=%E5%9B ... 88%A9%E7%94%A825%25
第一个类似问题:为什么解压缩时四核CPU往往只能使用25%左右而已,为什么CPU使用率不是100%?
                        首先,CPU使用率应该是可以在设置菜单里进行设置的,另外,因为受到硬盘IO的速度限制,即使设置了全速解压,解压缩速度也不会有很明显的提高,只有在对文件进行压缩的时候会有明显改善。
如果是硬盘相关显然是不可能的,因为预先都读入内存了

第二个 http://zhidao.baidu.com/question/162430870.html


也就是说RGSS不支持多处理器么,可恶了呢

Ruby中使用的线程是用户级线程,由Ruby解释器进行切换管理。其效率要低于由OS管理线程的效率,且不能使用多个CPU,这确实是它的缺点。但其优点也很明显,即可移植性很高。

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2012-8-9 12:04:24 | 只看该作者
这类事情我倒不太清楚,
不过我的笔记本也是只能用到25%左右,
而且貌似不太适合做游戏的,测试最近一个游戏时不把其他应用程序关掉就可能因温度过高自动关机。

点评

貌似是ruby本身特性么……可恶  发表于 2012-8-9 12:06
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

3
发表于 2012-8-9 12:07:16 | 只看该作者
1)= =你需要ACE
2)粒子用GPU跑
3)渲染是单线程的,所有引擎都这样。
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
4
发表于 2012-8-9 12:48:43 | 只看该作者
本帖最后由 苏小脉 于 2012-8-9 12:49 编辑
Ruby中使用的线程是用户级线程,由Ruby解释器进行切换管理。其效率要低于由OS管理线程的效率,且不能使用多个CPU,这确实是它的缺点。但其优点也很明显,即可移植性很高。

「用戶級線程」用詞不妥。「用戶級」以及與之相對的「內核級」都是操作系統領域的術語,在這個論域中,「用戶級線程」指的是用戶程序可以操縱的線程,而與之對應的是只有內核才能操縱並且對用戶程序不可見的「內核線程」,也就是操作系統內核本身需要的線程。編程語言提供的線程幾乎都是用戶線程,但大致可分為兩類:本地線程和綠色(輕量級)線程。Ruby 1.8 以及之前的版本提供的線程是綠色線程,1.9 以後採用了本地線程。

另外,「不能使用多个CPU」是因為 Ruby 1.8 只有一個調度器線程,如果 Ruby 像 Erlang 那样支持多线程调度,也就是有多个不同的线程专门负责线程调度,那自然也能在使用绿色线程的同时充分利用多核资源。Erlang + SMP 多線程調度的組合下進行併發計算不輸於本地線程。

点评

用户级线程这句话也没有什么错误吧?Ruby本身的线程就是属于用户级的线程,绿色线程寄托于一个用户级线程,本身不算是一个用户级线程的一部分么  发表于 2012-8-19 20:11
啊,怎么老板和老板娘都来了。  发表于 2012-8-13 09:22
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

5
发表于 2012-8-10 10:36:23 | 只看该作者
如果你是xp版本的話,那就請考慮xp出現的年代.4盒....

另外提高xp畫面幀數的是cpu赫茲數,絕對不是什麽多核顯卡

点评

无论是xp、VA都只能利用单核,  发表于 2012-8-15 15:23
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
6
发表于 2012-8-25 00:16:07 | 只看该作者
本帖最后由 苏小脉 于 2012-8-25 00:42 编辑

@harinlen
用户级线程这句话也没有什么错误吧?Ruby本身的线程就是属于用户级的线程,绿色线程寄托于一个用户级线程,本身不算是一个用户级线程的一部分么

說到底還是歧義的問題,我相信說這句話的人也知道這些概念,只是說出來的時候不夠嚴謹。原話是「Ruby中使用的线程是用户级线程,由Ruby解释器进行切换管理」,兩個子句連起來容易產生歧義。
1、無論任何編程語言,只要是用戶程序,其操縱的線程幾乎都是用戶線程(除非底層 OS 提供了操縱內核線程的系統調用),在討論綠色線程 vs 本地線程在 CPU 效用上的區別時提這個沒什麼意義,反而容易讓人聯想到「其他語言中使用的線程是内核线程」這個命題。
2、「由Ruby解释器进行切换管理」是綠色線程的特性,和前一個子句「Ruby中使用的线程是用户级线程」並無因果。

@R-零
无论是xp、VA都只能利用单核,

只要有底層接口,一切都有可能。所有 RM 版本都可以通過 Win32API (VA 可以通過 dl 庫)操縱本地線程,所以都可以利用多核,只不過沒有用到 Ruby 線程。要用 Ruby 線程的話,也可以通過 Ruby 的 API (rb_thread_blocking_region(),甚至直接 native_mutex_unlock(vm->global_vm_lock) 之類的)操縱全局解釋器鎖,只要在一個安全的區域內解鎖(當然,影響 Ruby 虛擬機內部結構的操作很難保證安全),在這個區域內就可以利用多核,達成真正的併發。

点评

话说@失效了,私今日才发现这帖= =确实这是个歧义句,也木有必要在一个确定的问题上纠结了的说~  发表于 2012-9-22 22:48
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
142 小时
注册时间
2011-5-13
帖子
250
7
发表于 2012-9-8 16:16:37 手机端发表。 | 只看该作者
我有一次试过90多
认真你就输了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-5 20:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表