我有一个我正在制作的应用程序,它创建了大量的窗口控件(按钮和标签等).它们都是通过功能动态制作的.我遇到的问题是,当我删除控件并处理它们时,它们不会从内存中删除.
void loadALoadOfStuff()
{
while(tabControlToClear.Controls.Count > 0)
tabControlToClear.Controls[0].Dispose();
//I even put in:
GC.Collect();
GC.WaitForPendingFinalizers();
foreach(String pagename in globalList)
tabControlToClear.Controls.Add(MakeATab(pagename));
}
TabPage MakeATab(string tabText)
{
TabPage newT = new MakeATab();
newT.Text = tabText;
//Fill page with controls with methods like this
return newT;
}
Run Code Online (Sandbox Code Playgroud)
现在由于某种原因,这只是没有给我回忆,所以当进程运行5次时,我最终会出现内存不足的情况.我是对象和控制处置的新手,但是通过庞大的网络查看仍然没有给我任何指示,所以如果你们有任何想法,我会很高兴听到它.
更新:我一直在关注用户对象的创建和销毁(taskmanager),并注意到我创建了一个标签页,添加了一个单击处理程序,添加了一个面板,添加了两个按钮,包括点击处理程序,工具提示和背景图像(我认为这是哪里问题是).该应用程序说它创建了8个新项目,但是当我运行我的处理时,我只从内存中删除4个.我一直试图删除事件处理程序,但似乎没有任何区别.
解决!!!当我向面板添加新项目时,我向他们传递了一个工具提示(愚蠢,但我正在学习).对于其他任何有同样问题的人,(感谢下面的人的评论和指示.我发现为了让控件真正处理掉(因为我意识到我错误地把它放了)是:
1:如果你有工具提示,请确认它是可以访问的!不要做我想做的事!例如:
这是错的!
TabPage MakeATab(string tabText)
{
TabPage newT = new MakeATab();
ToolTip myTip = new ToolTip();
newT.Text = tabText;
//Fill page with controls with methods like this
myTip.SetToolTip(newT, "Something to say");
return newT;
} …Run Code Online (Sandbox Code Playgroud) 我想从我的Android设备获取所有图像/照片/壁纸与图像保存路径.
我已经实现了从sdcard收集图像的代码,如下所示:
String[] mProjection = {
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA
};
mCursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
mProjection,
null,
null,
MediaStore.Images.Media.DEFAULT_SORT_ORDER);
Run Code Online (Sandbox Code Playgroud)
从上面的代码我只能从sdcard中检索图像.但如果图像在设备手机内存中可用,那么我该如何检索图像/照片/壁纸?如果我使用INTERNAL_CONTENT_URI它不会返回wallapers info其他图像信息
请任何身体帮助我....
我是Scala的新手,并试图找出过滤和映射集合的最佳方法.这是一个解释我的问题的玩具示例.
方法1:这非常糟糕,因为我在列表中迭代两次并在每次迭代中计算相同的值.
val N = 5
val nums = 0 until 10
val sqNumsLargerThanN = nums filter { x: Int => (x * x) > N } map { x: Int => (x * x).toString }
Run Code Online (Sandbox Code Playgroud)
方法2:这稍微好一点,但我还需要计算(x * x)两次.
val N = 5
val nums = 0 until 10
val sqNumsLargerThanN = nums collect { case x: Int if (x * x) > N => (x * x).toString }
Run Code Online (Sandbox Code Playgroud)
那么,是否可以计算这个而不重复两次收集并避免重复相同的计算?
我需要根据两列字符串的相似性在两个大数据集之间进行模糊连接(假设每个数据集为30Gb).例如:
表格1:
Key1 |Value1
-------------
1 |qsdm fkq jmsk fqj msdk
Run Code Online (Sandbox Code Playgroud)
表2:
Key2 |Value2
-------------
1 |qsdm fkqj mskf qjm sdk
Run Code Online (Sandbox Code Playgroud)
我们的目的是计算value1的每一行与value2的每一行之间的相似性的余弦,之后,感谢thresold预定义,我可以加入两个表.
关键词:实体分辨率,相似度余弦,倒排索引(优化相似度计算),TF-IDF,令牌权重,单词,文档(值列中的单元格),数据集
我使用Spark(PySpark)来计算连接.在进行的那一刻,我有:
使用倒排索引的策略,我减少了两个文档之间相似性的计算次数(字符串).它是一个RDD CommonTokens((key1,key2),令牌)数组:key1是table1中的键,key2是table2中的键,令牌是value1和value2之间的常用令牌列表.对于CommonTokens中的每个元素,我计算生成相似度的余弦((key1,key2),相似度).
在火花中,我做了:
创建函数相似度:
在CommonTokens中应用具有上面定义的相似性函数的地图
spark-submit --master yarn-client --executor-cores 3 --executor-memory 20G --driver-memory 20G --driver-cores 12 --queue cku --num-executors 6 run/Join.py&
火花问题:
感谢您的任何建议(对不起我的英文,如果我的问题不明确,请随时向我询问更多信息)
我知道我可以查询基于数组的最新书籍
scope :recent_books, lambda {|since_dt| {:conditions=>{:created_at >= since_dt}}}
但是当我有一个项目数组时如何进行类似的查询,例如,如果我想知道是否有任何记录与[date1,date2,date3等]数组中的日期匹配,该怎么办?
我认为必须有一个collect/inject/select/map y方法才能做到,但我不确定从哪个读取它们.
我有一个这样的课:
class Foo {
static hasMany = [bars: Bar]
}
Run Code Online (Sandbox Code Playgroud)
我写的时候:
Foo.getAll()
Run Code Online (Sandbox Code Playgroud)
我得到一个Foo像这样的对象列表:
[ Foo1, Foo2, Foo3 ]
Run Code Online (Sandbox Code Playgroud)
我写的时候:
Foo.getAll().bars
Run Code Online (Sandbox Code Playgroud)
我得到一个Bar像这样的对象列表:
[ [ Bar1, Bar2 ], [ Bar2, Bar3 ], [ Bar1, Bar4 ] ]
Run Code Online (Sandbox Code Playgroud)
但我想要的是一个Bar像这样的唯一对象列表:
[ Bar1, Bar2, Bar3, Bar4 ]
Run Code Online (Sandbox Code Playgroud)
我的最终目标是Bar在上面的列表中有一个唯一的对象ID 列表,如下所示:
[ 1, 2, 3, 4 ]
Run Code Online (Sandbox Code Playgroud)
我是Java lambdas的新手,我不确定我想要的是否可以实现:我有一个对象列表,我想过滤它们以提取那些匹配给定条件的对象,并将它们放入一个单独的列表(所以我可以对它们执行一些操作,保持原始列表不被修改)我想出了这个:
List<Suggestion> only_translations = original_list.stream().
filter(t -> t.isTranslation).
collect(Collectors.toCollection(() -> new ArrayList<Suggestion>()));
Run Code Online (Sandbox Code Playgroud)
但即使我得到一个新的列表对象,节点似乎链接到原始列表(通过引用,而不是从原始列表中复制的新对象),因此修改新列表中的对象也会修改原来的.
所以,我想知道它是否可行实现(使用lambdas,我知道我可以用迭代所有元素的"经典"方式),在这种情况下,如何实现.提前致谢!
我试图从列表填充地图.这就是我在做什么.
itemNoList = [1,2,3,4]
bookMap = [:]
bookMap = itemNoList.collect{ [ (it) : it+1 ] }
Run Code Online (Sandbox Code Playgroud)
当我这样做时,bookMap变为ArrayList类型,现在有一个HashMap列表.
bookMap现在是[{1=2}, {2=3}, {3=4}, {4=5}],即地图列表.
我怎样才能使用collect方法从ArrayList获取HashMap ?通过使用each替代方法很容易解决这个问题collect,但我只是好奇它是否可以使用collect.
众所周知,在进行累积时,"reduce"总是返回一个新的不可变对象,而"collect"将对可变对象进行更改.
但是,当我不小心为reduce和collect方法分配一个方法引用时,它编译时没有任何错误.为什么?
看看下面的代码:
public class Test {
@Test
public void testReduce() {
BiFunction<MutableContainer,Long,MutableContainer> func =
MutableContainer::reduce;
// Why this can compile?
BiConsumer<MutableContainer,Long> consume =
MutableContainer::reduce;
// correct way:
//BiConsumer<MutableContainer,Long> consume =
// MutableContainer::collect;
long param=10;
MutableContainer container = new MutableContainer(0);
consume.accept(container, param);
// here prints "0",incorrect result,
// because here we expect a mutable change instead of returning a immutable value
System.out.println(container.getSum());
MutableContainer newContainer = func.apply(container, param);
System.out.println(newContainer.getSum());
}
}
class MutableContainer {
public MutableContainer(long sum) {
this.sum = sum; …Run Code Online (Sandbox Code Playgroud) 按照接受的答案在pyspark collect_set或GROUPBY collect_list,当你做一个collect_list特定列,在null此列值将被删除。我已经检查过了,这是真的。
但就我而言,我需要保留null列-如何实现此目的?
我没有找到有关此类collect_list功能变体的任何信息。
解释我为什么要空值的背景上下文:
我有一个数据框df如下:
cId | eId | amount | city
1 | 2 | 20.0 | Paris
1 | 2 | 30.0 | Seoul
1 | 3 | 10.0 | Phoenix
1 | 3 | 5.0 | null
Run Code Online (Sandbox Code Playgroud)
我想使用以下映射将其写入Elasticsearch索引:
"mappings": {
"doc": {
"properties": {
"eId": { "type": "keyword" },
"cId": { "type": "keyword" },
"transactions": {
"type": "nested",
"properties": {
"amount": { "type": …Run Code Online (Sandbox Code Playgroud) nested collect elasticsearch-mapping elasticsearch-hadoop pyspark-sql
collect ×10
closures ×2
collections ×2
filter ×2
groovy ×2
java ×2
android ×1
apache-spark ×1
arraylist ×1
c# ×1
controls ×1
dictionary ×1
dispose ×1
grails ×1
hashmap ×1
java-8 ×1
java-stream ×1
join ×1
lambda ×1
memory ×1
model ×1
nested ×1
pyspark ×1
pyspark-sql ×1
reduce ×1
ruby ×1
scala ×1
select ×1
similarity ×1