首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存高效递归

内存高效递归
EN

Stack Overflow用户
提问于 2010-07-29 06:16:03
回答 5查看 2.9K关注 0票数 2

我用C#编写了一个应用程序,它可以生成所有可以由字母、数字和一些特殊字符组合而成的单词。

问题是它的内存效率不高,因为它正在适应递归和一些像List这样的集合。

有没有办法让它在有限的内存环境中运行?

乌马尔

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-29 06:17:46

将其转换为iterative function.

票数 8
EN

Stack Overflow用户

发布于 2010-07-29 07:52:23

不幸的是,C#编译器不执行tail call optimization,这是您希望在这种情况下发生的事情。CLR支持它,kinda,但你不应该依赖它。

也许在字段的左边,但也许你可以用F#编写程序的递归部分?这样,您就可以利用有保证的尾部调用优化,并重用C#代码的一小部分。虽然学习曲线很陡峭,但F#是一种更适合这些组合任务的语言。

票数 1
EN

Stack Overflow用户

发布于 2010-07-30 17:02:49

嗯……我不确定我和你们谁一起去,但我有解决办法。我使用了多个进程,一个是与用户交互的进程,另一个是查找单词组合的进程。另一个过程找到5000个单词,保存它们并退出。通信是通过WCF实现的。当进程退出=释放内存时,这看起来很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3358000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档