小编seb*_*seb的帖子

垃圾收集:如何计算伊甸园空间(和其他世代规模)?

我需要帮助理解GC相关的数字,我从如何获得jmapjstat涉及到我传递到Java的设置.我在具有16GB内存的服务器上使用以下设置启动应用程序(solr):

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled 
-Xms12144m -Xmx12144m 
-XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseCompressedOops

输出jmap开始:

Concurrent Mark-Sweep GC

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 12733906944 (12144.0MB)
   NewSize          = 2686976 (2.5625MB)
   MaxNewSize       = 130809856 (124.75MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 4
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 176160768 (168.0MB)

为什么NewSize,MaxNewSize,OldSize,和PermSize所有的这么小,当MaxHeapSize大?不应该NewSize + OldSize = heap size?整体堆大小不应该接近MaxHeapSize?当为什么设置为4 时,为什么NewSize只有一半? …

java garbage-collection solr

10
推荐指数
1
解决办法
6244
查看次数

用于显示表单数据和验证错误的最干净的设计模式?

在现实生活中,如果我使用表单框架,我不可避免地会在某些时候与它进行斗争.

我对在网站中构建表单的最佳实践模式感兴趣.参考任何语言的实现都是一个奖励(我通常使用Python).我对向最终用户创建/显示表单的问题特别感兴趣.

这是我看待主题的方式.表单工作流的大多数部分都可以使用相对轻量级的组件来处理,我可以从框架中删除formencodeformish."大多数部分"是指提交的表单数据解码为合理的数据结构(例如,表单中的重复字段应该成为Python中的列表); 将值编组到我们想要的类型中(例如,"age"字段应该变成整数); 并验证这些值(例如"年龄不能为空").

我最终战斗的一点是制作和展示表格本身.许多框架(例如FormAlchemy)将他们的模式,验证和模型紧密地耦合到某种形式的小部件生成方案,这是我不喜欢的.

制作表格所涉及的任务是:

  • 制作动态小部件(例如,包含来自数据库的值的选择列表)
  • 循环重复的字段集(例如,每个代表一个人的名称,年龄对的列表)
  • 在表单字段中嵌入现有值(来自数据结构)
  • 在表单字段旁边或页面顶部显示验证错误

我看到的选项是:

  • 生成,基于模式中定义的小部件(例如Django)
  • 后处理表单,通过将包含错误和值的数据结构应用于HTML模板(例如htmlfill)
  • 对于除了最简单的情况之外的所有情况,您可以从一开始就通过在每个表单模板中手动编码逻辑(循环,错误显示等)来开始

有没有其他模式来处理这个问题?各自的优点和缺点是什么?

(蟒蛇)我已经看了/曾指出,该框架到目前为止是:平原,formencode,FormAlchemy,formish,WTForms,Django的形式,web2py中,变形,FormConvertweb.py

更新:我回答关于构建表单的最佳实践的问题并不是很远,但我已经决定使用我当前的项目来进行变形/漏勺,这是处理序列化等的理智方式,但是更重要的是有充分的文件证明和经过充分测试.除了最简单的形式之外,我将尽量避免使用表单生成.

python forms design-patterns

9
推荐指数
1
解决办法
1634
查看次数

从包含的文件中,如何获取包含文件的文件名?

为措辞不佳的问题标题道歉 - 不知道如何把它变得更好!

在下面的代码中,当我执行时ruby bar.rb,如何才能使其输出bar.rb,而不是foo.rb

foo.rb:

module Foo
  def filename
    __FILE__
  end
end
Run Code Online (Sandbox Code Playgroud)

bar.rb:

require_relative 'foo'
include Foo

puts filename # outputs 'foo.rb'
Run Code Online (Sandbox Code Playgroud)

这是一个库函数,每次执行一些代码时,都会记录该代码的位置(和git ref).

ruby

9
推荐指数
1
解决办法
1206
查看次数

标签 统计

design-patterns ×1

forms ×1

garbage-collection ×1

java ×1

python ×1

ruby ×1

solr ×1